blockstorage

package
v4.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 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 GetAvailabilityZonesV3Args

type GetAvailabilityZonesV3Args struct {
	// The region in which to obtain the Block Storage client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The `state` of the availability zones to match. Can
	// either be `available` or `unavailable`. Default is `available`.
	State *string `pulumi:"state"`
}

A collection of arguments for invoking getAvailabilityZonesV3.

type GetAvailabilityZonesV3OutputArgs

type GetAvailabilityZonesV3OutputArgs struct {
	// The region in which to obtain the Block Storage client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The `state` of the availability zones to match. Can
	// either be `available` or `unavailable`. Default is `available`.
	State pulumi.StringPtrInput `pulumi:"state"`
}

A collection of arguments for invoking getAvailabilityZonesV3.

func (GetAvailabilityZonesV3OutputArgs) ElementType

type GetAvailabilityZonesV3Result

type GetAvailabilityZonesV3Result struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The names of the availability zones, ordered alphanumerically, that
	// match the queried `state`.
	Names []string `pulumi:"names"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// See Argument Reference above.
	State *string `pulumi:"state"`
}

A collection of values returned by getAvailabilityZonesV3.

func GetAvailabilityZonesV3

func GetAvailabilityZonesV3(ctx *pulumi.Context, args *GetAvailabilityZonesV3Args, opts ...pulumi.InvokeOption) (*GetAvailabilityZonesV3Result, error)

Use this data source to get a list of Block Storage availability zones from OpenStack

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.GetAvailabilityZonesV3(ctx, nil, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetAvailabilityZonesV3ResultOutput

type GetAvailabilityZonesV3ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAvailabilityZonesV3.

func (GetAvailabilityZonesV3ResultOutput) ElementType

func (GetAvailabilityZonesV3ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetAvailabilityZonesV3ResultOutput) Names

The names of the availability zones, ordered alphanumerically, that match the queried `state`.

func (GetAvailabilityZonesV3ResultOutput) Region

See Argument Reference above.

func (GetAvailabilityZonesV3ResultOutput) State

See Argument Reference above.

func (GetAvailabilityZonesV3ResultOutput) ToGetAvailabilityZonesV3ResultOutput

func (o GetAvailabilityZonesV3ResultOutput) ToGetAvailabilityZonesV3ResultOutput() GetAvailabilityZonesV3ResultOutput

func (GetAvailabilityZonesV3ResultOutput) ToGetAvailabilityZonesV3ResultOutputWithContext

func (o GetAvailabilityZonesV3ResultOutput) ToGetAvailabilityZonesV3ResultOutputWithContext(ctx context.Context) GetAvailabilityZonesV3ResultOutput

type GetQuotasetV3Args

type GetQuotasetV3Args struct {
	// The id of the project to retrieve the quotaset.
	ProjectId string `pulumi:"projectId"`
	// The region in which to obtain the V3 Blockstorage client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getQuotasetV3.

type GetQuotasetV3OutputArgs

type GetQuotasetV3OutputArgs struct {
	// The id of the project to retrieve the quotaset.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
	// The region in which to obtain the V3 Blockstorage client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getQuotasetV3.

func (GetQuotasetV3OutputArgs) ElementType

func (GetQuotasetV3OutputArgs) ElementType() reflect.Type

type GetQuotasetV3Result

type GetQuotasetV3Result struct {
	// The size (GB) of backups that are allowed.
	BackupGigabytes int `pulumi:"backupGigabytes"`
	// The number of backups that are allowed.
	Backups int `pulumi:"backups"`
	// The size (GB) of volumes and snapshots that are allowed.
	Gigabytes int `pulumi:"gigabytes"`
	// The number of groups that are allowed.
	Groups int `pulumi:"groups"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The size (GB) of volumes that are allowed for each volume.
	PerVolumeGigabytes int `pulumi:"perVolumeGigabytes"`
	// See Argument Reference above.
	ProjectId string `pulumi:"projectId"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// The number of snapshots that are allowed.
	Snapshots int `pulumi:"snapshots"`
	// Map with gigabytes_{volume_type}, snapshots_{volume_type}, volumes_{volume_type} for each volume type.
	VolumeTypeQuota map[string]string `pulumi:"volumeTypeQuota"`
	// The number of volumes that are allowed.
	Volumes int `pulumi:"volumes"`
}

A collection of values returned by getQuotasetV3.

func GetQuotasetV3

func GetQuotasetV3(ctx *pulumi.Context, args *GetQuotasetV3Args, opts ...pulumi.InvokeOption) (*GetQuotasetV3Result, error)

Use this data source to get the blockstorage quotaset v3 of an OpenStack project.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.GetQuotasetV3(ctx, &blockstorage.GetQuotasetV3Args{
			ProjectId: "2e367a3d29f94fd988e6ec54e305ec9d",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetQuotasetV3ResultOutput

type GetQuotasetV3ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getQuotasetV3.

func (GetQuotasetV3ResultOutput) BackupGigabytes

func (o GetQuotasetV3ResultOutput) BackupGigabytes() pulumi.IntOutput

The size (GB) of backups that are allowed.

func (GetQuotasetV3ResultOutput) Backups

The number of backups that are allowed.

func (GetQuotasetV3ResultOutput) ElementType

func (GetQuotasetV3ResultOutput) ElementType() reflect.Type

func (GetQuotasetV3ResultOutput) Gigabytes

The size (GB) of volumes and snapshots that are allowed.

func (GetQuotasetV3ResultOutput) Groups

The number of groups that are allowed.

func (GetQuotasetV3ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetQuotasetV3ResultOutput) PerVolumeGigabytes

func (o GetQuotasetV3ResultOutput) PerVolumeGigabytes() pulumi.IntOutput

The size (GB) of volumes that are allowed for each volume.

func (GetQuotasetV3ResultOutput) ProjectId

See Argument Reference above.

func (GetQuotasetV3ResultOutput) Region

See Argument Reference above.

func (GetQuotasetV3ResultOutput) Snapshots

The number of snapshots that are allowed.

func (GetQuotasetV3ResultOutput) ToGetQuotasetV3ResultOutput

func (o GetQuotasetV3ResultOutput) ToGetQuotasetV3ResultOutput() GetQuotasetV3ResultOutput

func (GetQuotasetV3ResultOutput) ToGetQuotasetV3ResultOutputWithContext

func (o GetQuotasetV3ResultOutput) ToGetQuotasetV3ResultOutputWithContext(ctx context.Context) GetQuotasetV3ResultOutput

func (GetQuotasetV3ResultOutput) VolumeTypeQuota

func (o GetQuotasetV3ResultOutput) VolumeTypeQuota() pulumi.StringMapOutput

Map with gigabytes_{volume_type}, snapshots_{volume_type}, volumes_{volume_type} for each volume type.

func (GetQuotasetV3ResultOutput) Volumes

The number of volumes that are allowed.

type GetSnapshotV2Args

type GetSnapshotV2Args struct {
	// Pick the most recently created snapshot if there
	// are multiple results.
	MostRecent *bool `pulumi:"mostRecent"`
	// The name of the snapshot.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V2 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The status of the snapshot.
	Status *string `pulumi:"status"`
	// The ID of the snapshot's volume.
	VolumeId *string `pulumi:"volumeId"`
}

A collection of arguments for invoking getSnapshotV2.

type GetSnapshotV2OutputArgs

type GetSnapshotV2OutputArgs struct {
	// Pick the most recently created snapshot if there
	// are multiple results.
	MostRecent pulumi.BoolPtrInput `pulumi:"mostRecent"`
	// The name of the snapshot.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the V2 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The status of the snapshot.
	Status pulumi.StringPtrInput `pulumi:"status"`
	// The ID of the snapshot's volume.
	VolumeId pulumi.StringPtrInput `pulumi:"volumeId"`
}

A collection of arguments for invoking getSnapshotV2.

func (GetSnapshotV2OutputArgs) ElementType

func (GetSnapshotV2OutputArgs) ElementType() reflect.Type

type GetSnapshotV2Result

type GetSnapshotV2Result struct {
	// The snapshot's description.
	Description string `pulumi:"description"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The snapshot's metadata.
	Metadata   map[string]string `pulumi:"metadata"`
	MostRecent *bool             `pulumi:"mostRecent"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// The size of the snapshot.
	Size int `pulumi:"size"`
	// See Argument Reference above.
	Status string `pulumi:"status"`
	// See Argument Reference above.
	VolumeId string `pulumi:"volumeId"`
}

A collection of values returned by getSnapshotV2.

func GetSnapshotV2

func GetSnapshotV2(ctx *pulumi.Context, args *GetSnapshotV2Args, opts ...pulumi.InvokeOption) (*GetSnapshotV2Result, error)

Use this data source to get information about an existing snapshot.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.GetSnapshotV2(ctx, &blockstorage.GetSnapshotV2Args{
			Name:       pulumi.StringRef("snapshot_1"),
			MostRecent: pulumi.BoolRef(true),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetSnapshotV2ResultOutput

type GetSnapshotV2ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSnapshotV2.

func (GetSnapshotV2ResultOutput) Description

The snapshot's description.

func (GetSnapshotV2ResultOutput) ElementType

func (GetSnapshotV2ResultOutput) ElementType() reflect.Type

func (GetSnapshotV2ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetSnapshotV2ResultOutput) Metadata

The snapshot's metadata.

func (GetSnapshotV2ResultOutput) MostRecent

func (GetSnapshotV2ResultOutput) Name

See Argument Reference above.

func (GetSnapshotV2ResultOutput) Region

See Argument Reference above.

func (GetSnapshotV2ResultOutput) Size

The size of the snapshot.

func (GetSnapshotV2ResultOutput) Status

See Argument Reference above.

func (GetSnapshotV2ResultOutput) ToGetSnapshotV2ResultOutput

func (o GetSnapshotV2ResultOutput) ToGetSnapshotV2ResultOutput() GetSnapshotV2ResultOutput

func (GetSnapshotV2ResultOutput) ToGetSnapshotV2ResultOutputWithContext

func (o GetSnapshotV2ResultOutput) ToGetSnapshotV2ResultOutputWithContext(ctx context.Context) GetSnapshotV2ResultOutput

func (GetSnapshotV2ResultOutput) VolumeId

See Argument Reference above.

type GetSnapshotV3Args

type GetSnapshotV3Args struct {
	// Pick the most recently created snapshot if there
	// are multiple results.
	MostRecent *bool `pulumi:"mostRecent"`
	// The name of the snapshot.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V3 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The status of the snapshot.
	Status *string `pulumi:"status"`
	// The ID of the snapshot's volume.
	VolumeId *string `pulumi:"volumeId"`
}

A collection of arguments for invoking getSnapshotV3.

type GetSnapshotV3OutputArgs

type GetSnapshotV3OutputArgs struct {
	// Pick the most recently created snapshot if there
	// are multiple results.
	MostRecent pulumi.BoolPtrInput `pulumi:"mostRecent"`
	// The name of the snapshot.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the V3 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The status of the snapshot.
	Status pulumi.StringPtrInput `pulumi:"status"`
	// The ID of the snapshot's volume.
	VolumeId pulumi.StringPtrInput `pulumi:"volumeId"`
}

A collection of arguments for invoking getSnapshotV3.

func (GetSnapshotV3OutputArgs) ElementType

func (GetSnapshotV3OutputArgs) ElementType() reflect.Type

type GetSnapshotV3Result

type GetSnapshotV3Result struct {
	// The snapshot's description.
	Description string `pulumi:"description"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The snapshot's metadata.
	Metadata   map[string]string `pulumi:"metadata"`
	MostRecent *bool             `pulumi:"mostRecent"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// The size of the snapshot.
	Size int `pulumi:"size"`
	// See Argument Reference above.
	Status string `pulumi:"status"`
	// See Argument Reference above.
	VolumeId string `pulumi:"volumeId"`
}

A collection of values returned by getSnapshotV3.

func GetSnapshotV3

func GetSnapshotV3(ctx *pulumi.Context, args *GetSnapshotV3Args, opts ...pulumi.InvokeOption) (*GetSnapshotV3Result, error)

Use this data source to get information about an existing snapshot.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.GetSnapshotV3(ctx, &blockstorage.GetSnapshotV3Args{
			Name:       pulumi.StringRef("snapshot_1"),
			MostRecent: pulumi.BoolRef(true),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetSnapshotV3ResultOutput

type GetSnapshotV3ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSnapshotV3.

func (GetSnapshotV3ResultOutput) Description

The snapshot's description.

func (GetSnapshotV3ResultOutput) ElementType

func (GetSnapshotV3ResultOutput) ElementType() reflect.Type

func (GetSnapshotV3ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetSnapshotV3ResultOutput) Metadata

The snapshot's metadata.

func (GetSnapshotV3ResultOutput) MostRecent

func (GetSnapshotV3ResultOutput) Name

See Argument Reference above.

func (GetSnapshotV3ResultOutput) Region

See Argument Reference above.

func (GetSnapshotV3ResultOutput) Size

The size of the snapshot.

func (GetSnapshotV3ResultOutput) Status

See Argument Reference above.

func (GetSnapshotV3ResultOutput) ToGetSnapshotV3ResultOutput

func (o GetSnapshotV3ResultOutput) ToGetSnapshotV3ResultOutput() GetSnapshotV3ResultOutput

func (GetSnapshotV3ResultOutput) ToGetSnapshotV3ResultOutputWithContext

func (o GetSnapshotV3ResultOutput) ToGetSnapshotV3ResultOutputWithContext(ctx context.Context) GetSnapshotV3ResultOutput

func (GetSnapshotV3ResultOutput) VolumeId

See Argument Reference above.

type GetVolumeV3Args

type GetVolumeV3Args struct {
	// Indicates if the volume is bootable.
	Bootable *string `pulumi:"bootable"`
	// The OpenStack host on which the volume is located.
	Host *string `pulumi:"host"`
	// Metadata key/value pairs associated with the volume.
	Metadata map[string]string `pulumi:"metadata"`
	// The name of the volume.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V3 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The status of the volume.
	Status *string `pulumi:"status"`
	// The type of the volume.
	VolumeType *string `pulumi:"volumeType"`
}

A collection of arguments for invoking getVolumeV3.

type GetVolumeV3Attachment

type GetVolumeV3Attachment struct {
	Device     string `pulumi:"device"`
	Id         string `pulumi:"id"`
	InstanceId string `pulumi:"instanceId"`
}

type GetVolumeV3AttachmentArgs

type GetVolumeV3AttachmentArgs struct {
	Device     pulumi.StringInput `pulumi:"device"`
	Id         pulumi.StringInput `pulumi:"id"`
	InstanceId pulumi.StringInput `pulumi:"instanceId"`
}

func (GetVolumeV3AttachmentArgs) ElementType

func (GetVolumeV3AttachmentArgs) ElementType() reflect.Type

func (GetVolumeV3AttachmentArgs) ToGetVolumeV3AttachmentOutput

func (i GetVolumeV3AttachmentArgs) ToGetVolumeV3AttachmentOutput() GetVolumeV3AttachmentOutput

func (GetVolumeV3AttachmentArgs) ToGetVolumeV3AttachmentOutputWithContext

func (i GetVolumeV3AttachmentArgs) ToGetVolumeV3AttachmentOutputWithContext(ctx context.Context) GetVolumeV3AttachmentOutput

type GetVolumeV3AttachmentArray

type GetVolumeV3AttachmentArray []GetVolumeV3AttachmentInput

func (GetVolumeV3AttachmentArray) ElementType

func (GetVolumeV3AttachmentArray) ElementType() reflect.Type

func (GetVolumeV3AttachmentArray) ToGetVolumeV3AttachmentArrayOutput

func (i GetVolumeV3AttachmentArray) ToGetVolumeV3AttachmentArrayOutput() GetVolumeV3AttachmentArrayOutput

func (GetVolumeV3AttachmentArray) ToGetVolumeV3AttachmentArrayOutputWithContext

func (i GetVolumeV3AttachmentArray) ToGetVolumeV3AttachmentArrayOutputWithContext(ctx context.Context) GetVolumeV3AttachmentArrayOutput

type GetVolumeV3AttachmentArrayInput

type GetVolumeV3AttachmentArrayInput interface {
	pulumi.Input

	ToGetVolumeV3AttachmentArrayOutput() GetVolumeV3AttachmentArrayOutput
	ToGetVolumeV3AttachmentArrayOutputWithContext(context.Context) GetVolumeV3AttachmentArrayOutput
}

GetVolumeV3AttachmentArrayInput is an input type that accepts GetVolumeV3AttachmentArray and GetVolumeV3AttachmentArrayOutput values. You can construct a concrete instance of `GetVolumeV3AttachmentArrayInput` via:

GetVolumeV3AttachmentArray{ GetVolumeV3AttachmentArgs{...} }

type GetVolumeV3AttachmentArrayOutput

type GetVolumeV3AttachmentArrayOutput struct{ *pulumi.OutputState }

func (GetVolumeV3AttachmentArrayOutput) ElementType

func (GetVolumeV3AttachmentArrayOutput) Index

func (GetVolumeV3AttachmentArrayOutput) ToGetVolumeV3AttachmentArrayOutput

func (o GetVolumeV3AttachmentArrayOutput) ToGetVolumeV3AttachmentArrayOutput() GetVolumeV3AttachmentArrayOutput

func (GetVolumeV3AttachmentArrayOutput) ToGetVolumeV3AttachmentArrayOutputWithContext

func (o GetVolumeV3AttachmentArrayOutput) ToGetVolumeV3AttachmentArrayOutputWithContext(ctx context.Context) GetVolumeV3AttachmentArrayOutput

type GetVolumeV3AttachmentInput

type GetVolumeV3AttachmentInput interface {
	pulumi.Input

	ToGetVolumeV3AttachmentOutput() GetVolumeV3AttachmentOutput
	ToGetVolumeV3AttachmentOutputWithContext(context.Context) GetVolumeV3AttachmentOutput
}

GetVolumeV3AttachmentInput is an input type that accepts GetVolumeV3AttachmentArgs and GetVolumeV3AttachmentOutput values. You can construct a concrete instance of `GetVolumeV3AttachmentInput` via:

GetVolumeV3AttachmentArgs{...}

type GetVolumeV3AttachmentOutput

type GetVolumeV3AttachmentOutput struct{ *pulumi.OutputState }

func (GetVolumeV3AttachmentOutput) Device

func (GetVolumeV3AttachmentOutput) ElementType

func (GetVolumeV3AttachmentOutput) Id

func (GetVolumeV3AttachmentOutput) InstanceId

func (GetVolumeV3AttachmentOutput) ToGetVolumeV3AttachmentOutput

func (o GetVolumeV3AttachmentOutput) ToGetVolumeV3AttachmentOutput() GetVolumeV3AttachmentOutput

func (GetVolumeV3AttachmentOutput) ToGetVolumeV3AttachmentOutputWithContext

func (o GetVolumeV3AttachmentOutput) ToGetVolumeV3AttachmentOutputWithContext(ctx context.Context) GetVolumeV3AttachmentOutput

type GetVolumeV3OutputArgs

type GetVolumeV3OutputArgs struct {
	// Indicates if the volume is bootable.
	Bootable pulumi.StringPtrInput `pulumi:"bootable"`
	// The OpenStack host on which the volume is located.
	Host pulumi.StringPtrInput `pulumi:"host"`
	// Metadata key/value pairs associated with the volume.
	Metadata pulumi.StringMapInput `pulumi:"metadata"`
	// The name of the volume.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the V3 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The status of the volume.
	Status pulumi.StringPtrInput `pulumi:"status"`
	// The type of the volume.
	VolumeType pulumi.StringPtrInput `pulumi:"volumeType"`
}

A collection of arguments for invoking getVolumeV3.

func (GetVolumeV3OutputArgs) ElementType

func (GetVolumeV3OutputArgs) ElementType() reflect.Type

type GetVolumeV3Result

type GetVolumeV3Result struct {
	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments []GetVolumeV3Attachment `pulumi:"attachments"`
	// Indicates if the volume is bootable.
	Bootable string `pulumi:"bootable"`
	// The OpenStack host on which the volume is located.
	Host string `pulumi:"host"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Metadata map[string]string `pulumi:"metadata"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// The size of the volume in GBs.
	Size int `pulumi:"size"`
	// The ID of the volume from which the current volume was created.
	SourceVolumeId string `pulumi:"sourceVolumeId"`
	// See Argument Reference above.
	Status string `pulumi:"status"`
	// The type of the volume.
	VolumeType string `pulumi:"volumeType"`
}

A collection of values returned by getVolumeV3.

func GetVolumeV3

func GetVolumeV3(ctx *pulumi.Context, args *GetVolumeV3Args, opts ...pulumi.InvokeOption) (*GetVolumeV3Result, error)

Use this data source to get information about an existing volume.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.GetVolumeV3(ctx, &blockstorage.GetVolumeV3Args{
			Name: pulumi.StringRef("volume_1"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetVolumeV3ResultOutput

type GetVolumeV3ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVolumeV3.

func (GetVolumeV3ResultOutput) Attachments

If a volume is attached to an instance, this attribute will display the Attachment ID, Instance ID, and the Device as the Instance sees it.

func (GetVolumeV3ResultOutput) Bootable

Indicates if the volume is bootable.

func (GetVolumeV3ResultOutput) ElementType

func (GetVolumeV3ResultOutput) ElementType() reflect.Type

func (GetVolumeV3ResultOutput) Host

The OpenStack host on which the volume is located.

func (GetVolumeV3ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetVolumeV3ResultOutput) Metadata

See Argument Reference above.

func (GetVolumeV3ResultOutput) Name

See Argument Reference above.

func (GetVolumeV3ResultOutput) Region

See Argument Reference above.

func (GetVolumeV3ResultOutput) Size

The size of the volume in GBs.

func (GetVolumeV3ResultOutput) SourceVolumeId

func (o GetVolumeV3ResultOutput) SourceVolumeId() pulumi.StringOutput

The ID of the volume from which the current volume was created.

func (GetVolumeV3ResultOutput) Status

See Argument Reference above.

func (GetVolumeV3ResultOutput) ToGetVolumeV3ResultOutput

func (o GetVolumeV3ResultOutput) ToGetVolumeV3ResultOutput() GetVolumeV3ResultOutput

func (GetVolumeV3ResultOutput) ToGetVolumeV3ResultOutputWithContext

func (o GetVolumeV3ResultOutput) ToGetVolumeV3ResultOutputWithContext(ctx context.Context) GetVolumeV3ResultOutput

func (GetVolumeV3ResultOutput) VolumeType

The type of the volume.

type LookupVolumeV2Args

type LookupVolumeV2Args struct {
	// Indicates if the volume is bootable.
	Bootable *string `pulumi:"bootable"`
	// Metadata key/value pairs associated with the volume.
	Metadata map[string]string `pulumi:"metadata"`
	// The name of the volume.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V2 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The status of the volume.
	Status *string `pulumi:"status"`
	// The type of the volume.
	VolumeType *string `pulumi:"volumeType"`
}

A collection of arguments for invoking getVolumeV2.

type LookupVolumeV2OutputArgs

type LookupVolumeV2OutputArgs struct {
	// Indicates if the volume is bootable.
	Bootable pulumi.StringPtrInput `pulumi:"bootable"`
	// Metadata key/value pairs associated with the volume.
	Metadata pulumi.StringMapInput `pulumi:"metadata"`
	// The name of the volume.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the V2 Block Storage
	// client. If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The status of the volume.
	Status pulumi.StringPtrInput `pulumi:"status"`
	// The type of the volume.
	VolumeType pulumi.StringPtrInput `pulumi:"volumeType"`
}

A collection of arguments for invoking getVolumeV2.

func (LookupVolumeV2OutputArgs) ElementType

func (LookupVolumeV2OutputArgs) ElementType() reflect.Type

type LookupVolumeV2Result

type LookupVolumeV2Result struct {
	// Indicates if the volume is bootable.
	Bootable string `pulumi:"bootable"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Metadata map[string]string `pulumi:"metadata"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// The size of the volume in GBs.
	Size int `pulumi:"size"`
	// The ID of the volume from which the current volume was created.
	SourceVolumeId string `pulumi:"sourceVolumeId"`
	// See Argument Reference above.
	Status string `pulumi:"status"`
	// The type of the volume.
	VolumeType string `pulumi:"volumeType"`
}

A collection of values returned by getVolumeV2.

func LookupVolumeV2

func LookupVolumeV2(ctx *pulumi.Context, args *LookupVolumeV2Args, opts ...pulumi.InvokeOption) (*LookupVolumeV2Result, error)

Use this data source to get information about an existing volume.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.LookupVolumeV2(ctx, &blockstorage.LookupVolumeV2Args{
			Name: pulumi.StringRef("volume_1"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupVolumeV2ResultOutput

type LookupVolumeV2ResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVolumeV2.

func (LookupVolumeV2ResultOutput) Bootable

Indicates if the volume is bootable.

func (LookupVolumeV2ResultOutput) ElementType

func (LookupVolumeV2ResultOutput) ElementType() reflect.Type

func (LookupVolumeV2ResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupVolumeV2ResultOutput) Metadata

See Argument Reference above.

func (LookupVolumeV2ResultOutput) Name

See Argument Reference above.

func (LookupVolumeV2ResultOutput) Region

See Argument Reference above.

func (LookupVolumeV2ResultOutput) Size

The size of the volume in GBs.

func (LookupVolumeV2ResultOutput) SourceVolumeId

func (o LookupVolumeV2ResultOutput) SourceVolumeId() pulumi.StringOutput

The ID of the volume from which the current volume was created.

func (LookupVolumeV2ResultOutput) Status

See Argument Reference above.

func (LookupVolumeV2ResultOutput) ToLookupVolumeV2ResultOutput

func (o LookupVolumeV2ResultOutput) ToLookupVolumeV2ResultOutput() LookupVolumeV2ResultOutput

func (LookupVolumeV2ResultOutput) ToLookupVolumeV2ResultOutputWithContext

func (o LookupVolumeV2ResultOutput) ToLookupVolumeV2ResultOutputWithContext(ctx context.Context) LookupVolumeV2ResultOutput

func (LookupVolumeV2ResultOutput) VolumeType

The type of the volume.

type QosAssociationV3

type QosAssociationV3 struct {
	pulumi.CustomResourceState

	// ID of the qos to associate. Changing this creates
	// a new qos association.
	QosId pulumi.StringOutput `pulumi:"qosId"`
	// The region in which to create the qos association.
	// If omitted, the `region` argument of the provider is used. Changing
	// this creates a new qos association.
	Region pulumi.StringOutput `pulumi:"region"`
	// ID of the volumeType to associate.
	// Changing this creates a new qos association.
	VolumeTypeId pulumi.StringOutput `pulumi:"volumeTypeId"`
}

Manages a V3 block storage Qos Association resource within OpenStack.

> **Note:** This usually requires admin privileges.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		qos, err := blockstorage.NewQosV3(ctx, "qos", &blockstorage.QosV3Args{
			Name:     pulumi.String("%s"),
			Consumer: pulumi.String("front-end"),
			Specs: pulumi.StringMap{
				"read_iops_sec": pulumi.String("20000"),
			},
		})
		if err != nil {
			return err
		}
		volumeType, err := blockstorage.NewVolumeTypeV3(ctx, "volume_type", &blockstorage.VolumeTypeV3Args{
			Name: pulumi.String("%s"),
		})
		if err != nil {
			return err
		}
		_, err = blockstorage.NewQosAssociationV3(ctx, "qos_association", &blockstorage.QosAssociationV3Args{
			QosId:        qos.ID(),
			VolumeTypeId: volumeType.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Qos association can be imported using the `qos_id/volume_type_id`, e.g.

```sh $ pulumi import openstack:blockstorage/qosAssociationV3:QosAssociationV3 qos_association 941793f0-0a34-4bc4-b72e-a6326ae58283/ea257959-eeb1-4c10-8d33-26f0409a755d ```

func GetQosAssociationV3

func GetQosAssociationV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *QosAssociationV3State, opts ...pulumi.ResourceOption) (*QosAssociationV3, error)

GetQosAssociationV3 gets an existing QosAssociationV3 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 NewQosAssociationV3

func NewQosAssociationV3(ctx *pulumi.Context,
	name string, args *QosAssociationV3Args, opts ...pulumi.ResourceOption) (*QosAssociationV3, error)

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

func (*QosAssociationV3) ElementType

func (*QosAssociationV3) ElementType() reflect.Type

func (*QosAssociationV3) ToQosAssociationV3Output

func (i *QosAssociationV3) ToQosAssociationV3Output() QosAssociationV3Output

func (*QosAssociationV3) ToQosAssociationV3OutputWithContext

func (i *QosAssociationV3) ToQosAssociationV3OutputWithContext(ctx context.Context) QosAssociationV3Output

type QosAssociationV3Args

type QosAssociationV3Args struct {
	// ID of the qos to associate. Changing this creates
	// a new qos association.
	QosId pulumi.StringInput
	// The region in which to create the qos association.
	// If omitted, the `region` argument of the provider is used. Changing
	// this creates a new qos association.
	Region pulumi.StringPtrInput
	// ID of the volumeType to associate.
	// Changing this creates a new qos association.
	VolumeTypeId pulumi.StringInput
}

The set of arguments for constructing a QosAssociationV3 resource.

func (QosAssociationV3Args) ElementType

func (QosAssociationV3Args) ElementType() reflect.Type

type QosAssociationV3Array

type QosAssociationV3Array []QosAssociationV3Input

func (QosAssociationV3Array) ElementType

func (QosAssociationV3Array) ElementType() reflect.Type

func (QosAssociationV3Array) ToQosAssociationV3ArrayOutput

func (i QosAssociationV3Array) ToQosAssociationV3ArrayOutput() QosAssociationV3ArrayOutput

func (QosAssociationV3Array) ToQosAssociationV3ArrayOutputWithContext

func (i QosAssociationV3Array) ToQosAssociationV3ArrayOutputWithContext(ctx context.Context) QosAssociationV3ArrayOutput

type QosAssociationV3ArrayInput

type QosAssociationV3ArrayInput interface {
	pulumi.Input

	ToQosAssociationV3ArrayOutput() QosAssociationV3ArrayOutput
	ToQosAssociationV3ArrayOutputWithContext(context.Context) QosAssociationV3ArrayOutput
}

QosAssociationV3ArrayInput is an input type that accepts QosAssociationV3Array and QosAssociationV3ArrayOutput values. You can construct a concrete instance of `QosAssociationV3ArrayInput` via:

QosAssociationV3Array{ QosAssociationV3Args{...} }

type QosAssociationV3ArrayOutput

type QosAssociationV3ArrayOutput struct{ *pulumi.OutputState }

func (QosAssociationV3ArrayOutput) ElementType

func (QosAssociationV3ArrayOutput) Index

func (QosAssociationV3ArrayOutput) ToQosAssociationV3ArrayOutput

func (o QosAssociationV3ArrayOutput) ToQosAssociationV3ArrayOutput() QosAssociationV3ArrayOutput

func (QosAssociationV3ArrayOutput) ToQosAssociationV3ArrayOutputWithContext

func (o QosAssociationV3ArrayOutput) ToQosAssociationV3ArrayOutputWithContext(ctx context.Context) QosAssociationV3ArrayOutput

type QosAssociationV3Input

type QosAssociationV3Input interface {
	pulumi.Input

	ToQosAssociationV3Output() QosAssociationV3Output
	ToQosAssociationV3OutputWithContext(ctx context.Context) QosAssociationV3Output
}

type QosAssociationV3Map

type QosAssociationV3Map map[string]QosAssociationV3Input

func (QosAssociationV3Map) ElementType

func (QosAssociationV3Map) ElementType() reflect.Type

func (QosAssociationV3Map) ToQosAssociationV3MapOutput

func (i QosAssociationV3Map) ToQosAssociationV3MapOutput() QosAssociationV3MapOutput

func (QosAssociationV3Map) ToQosAssociationV3MapOutputWithContext

func (i QosAssociationV3Map) ToQosAssociationV3MapOutputWithContext(ctx context.Context) QosAssociationV3MapOutput

type QosAssociationV3MapInput

type QosAssociationV3MapInput interface {
	pulumi.Input

	ToQosAssociationV3MapOutput() QosAssociationV3MapOutput
	ToQosAssociationV3MapOutputWithContext(context.Context) QosAssociationV3MapOutput
}

QosAssociationV3MapInput is an input type that accepts QosAssociationV3Map and QosAssociationV3MapOutput values. You can construct a concrete instance of `QosAssociationV3MapInput` via:

QosAssociationV3Map{ "key": QosAssociationV3Args{...} }

type QosAssociationV3MapOutput

type QosAssociationV3MapOutput struct{ *pulumi.OutputState }

func (QosAssociationV3MapOutput) ElementType

func (QosAssociationV3MapOutput) ElementType() reflect.Type

func (QosAssociationV3MapOutput) MapIndex

func (QosAssociationV3MapOutput) ToQosAssociationV3MapOutput

func (o QosAssociationV3MapOutput) ToQosAssociationV3MapOutput() QosAssociationV3MapOutput

func (QosAssociationV3MapOutput) ToQosAssociationV3MapOutputWithContext

func (o QosAssociationV3MapOutput) ToQosAssociationV3MapOutputWithContext(ctx context.Context) QosAssociationV3MapOutput

type QosAssociationV3Output

type QosAssociationV3Output struct{ *pulumi.OutputState }

func (QosAssociationV3Output) ElementType

func (QosAssociationV3Output) ElementType() reflect.Type

func (QosAssociationV3Output) QosId

ID of the qos to associate. Changing this creates a new qos association.

func (QosAssociationV3Output) Region

The region in which to create the qos association. If omitted, the `region` argument of the provider is used. Changing this creates a new qos association.

func (QosAssociationV3Output) ToQosAssociationV3Output

func (o QosAssociationV3Output) ToQosAssociationV3Output() QosAssociationV3Output

func (QosAssociationV3Output) ToQosAssociationV3OutputWithContext

func (o QosAssociationV3Output) ToQosAssociationV3OutputWithContext(ctx context.Context) QosAssociationV3Output

func (QosAssociationV3Output) VolumeTypeId

func (o QosAssociationV3Output) VolumeTypeId() pulumi.StringOutput

ID of the volumeType to associate. Changing this creates a new qos association.

type QosAssociationV3State

type QosAssociationV3State struct {
	// ID of the qos to associate. Changing this creates
	// a new qos association.
	QosId pulumi.StringPtrInput
	// The region in which to create the qos association.
	// If omitted, the `region` argument of the provider is used. Changing
	// this creates a new qos association.
	Region pulumi.StringPtrInput
	// ID of the volumeType to associate.
	// Changing this creates a new qos association.
	VolumeTypeId pulumi.StringPtrInput
}

func (QosAssociationV3State) ElementType

func (QosAssociationV3State) ElementType() reflect.Type

type QosV3

type QosV3 struct {
	pulumi.CustomResourceState

	// The consumer of qos. Can be one of `front-end`,
	// `back-end` or `both`. Changing this updates the `consumer` of an
	// existing qos.
	Consumer pulumi.StringPtrOutput `pulumi:"consumer"`
	// Name of the qos.  Changing this creates a new qos.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the qos. If omitted,
	// the `region` argument of the provider is used. Changing this creates
	// a new qos.
	Region pulumi.StringOutput `pulumi:"region"`
	// Key/Value pairs of specs for the qos.
	Specs pulumi.StringMapOutput `pulumi:"specs"`
}

Manages a V3 block storage Quality-Of-Servirce (qos) resource within OpenStack.

> **Note:** This usually requires admin privileges.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewQosV3(ctx, "qos", &blockstorage.QosV3Args{
			Name:     pulumi.String("foo"),
			Consumer: pulumi.String("back-end"),
			Specs: pulumi.StringMap{
				"read_iops_sec":  pulumi.String("40000"),
				"write_iops_sec": pulumi.String("40000"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Qos can be imported using the `qos_id`, e.g.

```sh $ pulumi import openstack:blockstorage/qosV3:QosV3 qos 941793f0-0a34-4bc4-b72e-a6326ae58283 ```

func GetQosV3

func GetQosV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *QosV3State, opts ...pulumi.ResourceOption) (*QosV3, error)

GetQosV3 gets an existing QosV3 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 NewQosV3

func NewQosV3(ctx *pulumi.Context,
	name string, args *QosV3Args, opts ...pulumi.ResourceOption) (*QosV3, error)

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

func (*QosV3) ElementType

func (*QosV3) ElementType() reflect.Type

func (*QosV3) ToQosV3Output

func (i *QosV3) ToQosV3Output() QosV3Output

func (*QosV3) ToQosV3OutputWithContext

func (i *QosV3) ToQosV3OutputWithContext(ctx context.Context) QosV3Output

type QosV3Args

type QosV3Args struct {
	// The consumer of qos. Can be one of `front-end`,
	// `back-end` or `both`. Changing this updates the `consumer` of an
	// existing qos.
	Consumer pulumi.StringPtrInput
	// Name of the qos.  Changing this creates a new qos.
	Name pulumi.StringPtrInput
	// The region in which to create the qos. If omitted,
	// the `region` argument of the provider is used. Changing this creates
	// a new qos.
	Region pulumi.StringPtrInput
	// Key/Value pairs of specs for the qos.
	Specs pulumi.StringMapInput
}

The set of arguments for constructing a QosV3 resource.

func (QosV3Args) ElementType

func (QosV3Args) ElementType() reflect.Type

type QosV3Array

type QosV3Array []QosV3Input

func (QosV3Array) ElementType

func (QosV3Array) ElementType() reflect.Type

func (QosV3Array) ToQosV3ArrayOutput

func (i QosV3Array) ToQosV3ArrayOutput() QosV3ArrayOutput

func (QosV3Array) ToQosV3ArrayOutputWithContext

func (i QosV3Array) ToQosV3ArrayOutputWithContext(ctx context.Context) QosV3ArrayOutput

type QosV3ArrayInput

type QosV3ArrayInput interface {
	pulumi.Input

	ToQosV3ArrayOutput() QosV3ArrayOutput
	ToQosV3ArrayOutputWithContext(context.Context) QosV3ArrayOutput
}

QosV3ArrayInput is an input type that accepts QosV3Array and QosV3ArrayOutput values. You can construct a concrete instance of `QosV3ArrayInput` via:

QosV3Array{ QosV3Args{...} }

type QosV3ArrayOutput

type QosV3ArrayOutput struct{ *pulumi.OutputState }

func (QosV3ArrayOutput) ElementType

func (QosV3ArrayOutput) ElementType() reflect.Type

func (QosV3ArrayOutput) Index

func (QosV3ArrayOutput) ToQosV3ArrayOutput

func (o QosV3ArrayOutput) ToQosV3ArrayOutput() QosV3ArrayOutput

func (QosV3ArrayOutput) ToQosV3ArrayOutputWithContext

func (o QosV3ArrayOutput) ToQosV3ArrayOutputWithContext(ctx context.Context) QosV3ArrayOutput

type QosV3Input

type QosV3Input interface {
	pulumi.Input

	ToQosV3Output() QosV3Output
	ToQosV3OutputWithContext(ctx context.Context) QosV3Output
}

type QosV3Map

type QosV3Map map[string]QosV3Input

func (QosV3Map) ElementType

func (QosV3Map) ElementType() reflect.Type

func (QosV3Map) ToQosV3MapOutput

func (i QosV3Map) ToQosV3MapOutput() QosV3MapOutput

func (QosV3Map) ToQosV3MapOutputWithContext

func (i QosV3Map) ToQosV3MapOutputWithContext(ctx context.Context) QosV3MapOutput

type QosV3MapInput

type QosV3MapInput interface {
	pulumi.Input

	ToQosV3MapOutput() QosV3MapOutput
	ToQosV3MapOutputWithContext(context.Context) QosV3MapOutput
}

QosV3MapInput is an input type that accepts QosV3Map and QosV3MapOutput values. You can construct a concrete instance of `QosV3MapInput` via:

QosV3Map{ "key": QosV3Args{...} }

type QosV3MapOutput

type QosV3MapOutput struct{ *pulumi.OutputState }

func (QosV3MapOutput) ElementType

func (QosV3MapOutput) ElementType() reflect.Type

func (QosV3MapOutput) MapIndex

func (QosV3MapOutput) ToQosV3MapOutput

func (o QosV3MapOutput) ToQosV3MapOutput() QosV3MapOutput

func (QosV3MapOutput) ToQosV3MapOutputWithContext

func (o QosV3MapOutput) ToQosV3MapOutputWithContext(ctx context.Context) QosV3MapOutput

type QosV3Output

type QosV3Output struct{ *pulumi.OutputState }

func (QosV3Output) Consumer

func (o QosV3Output) Consumer() pulumi.StringPtrOutput

The consumer of qos. Can be one of `front-end`, `back-end` or `both`. Changing this updates the `consumer` of an existing qos.

func (QosV3Output) ElementType

func (QosV3Output) ElementType() reflect.Type

func (QosV3Output) Name

func (o QosV3Output) Name() pulumi.StringOutput

Name of the qos. Changing this creates a new qos.

func (QosV3Output) Region

func (o QosV3Output) Region() pulumi.StringOutput

The region in which to create the qos. If omitted, the `region` argument of the provider is used. Changing this creates a new qos.

func (QosV3Output) Specs

Key/Value pairs of specs for the qos.

func (QosV3Output) ToQosV3Output

func (o QosV3Output) ToQosV3Output() QosV3Output

func (QosV3Output) ToQosV3OutputWithContext

func (o QosV3Output) ToQosV3OutputWithContext(ctx context.Context) QosV3Output

type QosV3State

type QosV3State struct {
	// The consumer of qos. Can be one of `front-end`,
	// `back-end` or `both`. Changing this updates the `consumer` of an
	// existing qos.
	Consumer pulumi.StringPtrInput
	// Name of the qos.  Changing this creates a new qos.
	Name pulumi.StringPtrInput
	// The region in which to create the qos. If omitted,
	// the `region` argument of the provider is used. Changing this creates
	// a new qos.
	Region pulumi.StringPtrInput
	// Key/Value pairs of specs for the qos.
	Specs pulumi.StringMapInput
}

func (QosV3State) ElementType

func (QosV3State) ElementType() reflect.Type

type QuoteSetV2

type QuoteSetV2 struct {
	pulumi.CustomResourceState

	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntOutput `pulumi:"backupGigabytes"`
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntOutput `pulumi:"backups"`
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntOutput `pulumi:"gigabytes"`
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntOutput `pulumi:"groups"`
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntOutput `pulumi:"perVolumeGigabytes"`
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringOutput `pulumi:"region"`
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntOutput `pulumi:"snapshots"`
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapOutput `pulumi:"volumeTypeQuota"`
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntOutput `pulumi:"volumes"`
}

Manages a V2 block storage quotaset resource within OpenStack.

> **Note:** This usually requires admin privileges.

> **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack API

in case of delete call.

> **Note:** This resource has all-in creation so all optional quota arguments that were not specified are

created with zero value. This excludes volume type quota.

## Import

Quotasets can be imported using the `project_id/region`, e.g.

```sh $ pulumi import openstack:blockstorage/quoteSetV2:QuoteSetV2 quotaset_1 2a0f2240-c5e6-41de-896d-e80d97428d6b/region_1 ```

func GetQuoteSetV2

func GetQuoteSetV2(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *QuoteSetV2State, opts ...pulumi.ResourceOption) (*QuoteSetV2, error)

GetQuoteSetV2 gets an existing QuoteSetV2 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 NewQuoteSetV2

func NewQuoteSetV2(ctx *pulumi.Context,
	name string, args *QuoteSetV2Args, opts ...pulumi.ResourceOption) (*QuoteSetV2, error)

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

func (*QuoteSetV2) ElementType

func (*QuoteSetV2) ElementType() reflect.Type

func (*QuoteSetV2) ToQuoteSetV2Output

func (i *QuoteSetV2) ToQuoteSetV2Output() QuoteSetV2Output

func (*QuoteSetV2) ToQuoteSetV2OutputWithContext

func (i *QuoteSetV2) ToQuoteSetV2OutputWithContext(ctx context.Context) QuoteSetV2Output

type QuoteSetV2Args

type QuoteSetV2Args struct {
	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntPtrInput
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntPtrInput
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntPtrInput
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntPtrInput
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntPtrInput
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntPtrInput
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapInput
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntPtrInput
}

The set of arguments for constructing a QuoteSetV2 resource.

func (QuoteSetV2Args) ElementType

func (QuoteSetV2Args) ElementType() reflect.Type

type QuoteSetV2Array

type QuoteSetV2Array []QuoteSetV2Input

func (QuoteSetV2Array) ElementType

func (QuoteSetV2Array) ElementType() reflect.Type

func (QuoteSetV2Array) ToQuoteSetV2ArrayOutput

func (i QuoteSetV2Array) ToQuoteSetV2ArrayOutput() QuoteSetV2ArrayOutput

func (QuoteSetV2Array) ToQuoteSetV2ArrayOutputWithContext

func (i QuoteSetV2Array) ToQuoteSetV2ArrayOutputWithContext(ctx context.Context) QuoteSetV2ArrayOutput

type QuoteSetV2ArrayInput

type QuoteSetV2ArrayInput interface {
	pulumi.Input

	ToQuoteSetV2ArrayOutput() QuoteSetV2ArrayOutput
	ToQuoteSetV2ArrayOutputWithContext(context.Context) QuoteSetV2ArrayOutput
}

QuoteSetV2ArrayInput is an input type that accepts QuoteSetV2Array and QuoteSetV2ArrayOutput values. You can construct a concrete instance of `QuoteSetV2ArrayInput` via:

QuoteSetV2Array{ QuoteSetV2Args{...} }

type QuoteSetV2ArrayOutput

type QuoteSetV2ArrayOutput struct{ *pulumi.OutputState }

func (QuoteSetV2ArrayOutput) ElementType

func (QuoteSetV2ArrayOutput) ElementType() reflect.Type

func (QuoteSetV2ArrayOutput) Index

func (QuoteSetV2ArrayOutput) ToQuoteSetV2ArrayOutput

func (o QuoteSetV2ArrayOutput) ToQuoteSetV2ArrayOutput() QuoteSetV2ArrayOutput

func (QuoteSetV2ArrayOutput) ToQuoteSetV2ArrayOutputWithContext

func (o QuoteSetV2ArrayOutput) ToQuoteSetV2ArrayOutputWithContext(ctx context.Context) QuoteSetV2ArrayOutput

type QuoteSetV2Input

type QuoteSetV2Input interface {
	pulumi.Input

	ToQuoteSetV2Output() QuoteSetV2Output
	ToQuoteSetV2OutputWithContext(ctx context.Context) QuoteSetV2Output
}

type QuoteSetV2Map

type QuoteSetV2Map map[string]QuoteSetV2Input

func (QuoteSetV2Map) ElementType

func (QuoteSetV2Map) ElementType() reflect.Type

func (QuoteSetV2Map) ToQuoteSetV2MapOutput

func (i QuoteSetV2Map) ToQuoteSetV2MapOutput() QuoteSetV2MapOutput

func (QuoteSetV2Map) ToQuoteSetV2MapOutputWithContext

func (i QuoteSetV2Map) ToQuoteSetV2MapOutputWithContext(ctx context.Context) QuoteSetV2MapOutput

type QuoteSetV2MapInput

type QuoteSetV2MapInput interface {
	pulumi.Input

	ToQuoteSetV2MapOutput() QuoteSetV2MapOutput
	ToQuoteSetV2MapOutputWithContext(context.Context) QuoteSetV2MapOutput
}

QuoteSetV2MapInput is an input type that accepts QuoteSetV2Map and QuoteSetV2MapOutput values. You can construct a concrete instance of `QuoteSetV2MapInput` via:

QuoteSetV2Map{ "key": QuoteSetV2Args{...} }

type QuoteSetV2MapOutput

type QuoteSetV2MapOutput struct{ *pulumi.OutputState }

func (QuoteSetV2MapOutput) ElementType

func (QuoteSetV2MapOutput) ElementType() reflect.Type

func (QuoteSetV2MapOutput) MapIndex

func (QuoteSetV2MapOutput) ToQuoteSetV2MapOutput

func (o QuoteSetV2MapOutput) ToQuoteSetV2MapOutput() QuoteSetV2MapOutput

func (QuoteSetV2MapOutput) ToQuoteSetV2MapOutputWithContext

func (o QuoteSetV2MapOutput) ToQuoteSetV2MapOutputWithContext(ctx context.Context) QuoteSetV2MapOutput

type QuoteSetV2Output

type QuoteSetV2Output struct{ *pulumi.OutputState }

func (QuoteSetV2Output) BackupGigabytes

func (o QuoteSetV2Output) BackupGigabytes() pulumi.IntOutput

Quota value for backup gigabytes. Changing this updates the existing quotaset.

func (QuoteSetV2Output) Backups

func (o QuoteSetV2Output) Backups() pulumi.IntOutput

Quota value for backups. Changing this updates the existing quotaset.

func (QuoteSetV2Output) ElementType

func (QuoteSetV2Output) ElementType() reflect.Type

func (QuoteSetV2Output) Gigabytes

func (o QuoteSetV2Output) Gigabytes() pulumi.IntOutput

Quota value for gigabytes. Changing this updates the existing quotaset.

func (QuoteSetV2Output) Groups

func (o QuoteSetV2Output) Groups() pulumi.IntOutput

Quota value for groups. Changing this updates the existing quotaset.

func (QuoteSetV2Output) PerVolumeGigabytes

func (o QuoteSetV2Output) PerVolumeGigabytes() pulumi.IntOutput

Quota value for gigabytes per volume . Changing this updates the existing quotaset.

func (QuoteSetV2Output) ProjectId

func (o QuoteSetV2Output) ProjectId() pulumi.StringOutput

ID of the project to manage quotas. Changing this creates a new quotaset.

func (QuoteSetV2Output) Region

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new quotaset.

func (QuoteSetV2Output) Snapshots

func (o QuoteSetV2Output) Snapshots() pulumi.IntOutput

Quota value for snapshots. Changing this updates the existing quotaset.

func (QuoteSetV2Output) ToQuoteSetV2Output

func (o QuoteSetV2Output) ToQuoteSetV2Output() QuoteSetV2Output

func (QuoteSetV2Output) ToQuoteSetV2OutputWithContext

func (o QuoteSetV2Output) ToQuoteSetV2OutputWithContext(ctx context.Context) QuoteSetV2Output

func (QuoteSetV2Output) VolumeTypeQuota

func (o QuoteSetV2Output) VolumeTypeQuota() pulumi.StringMapOutput

Key/Value pairs for setting quota for volumes types. Possible keys are `snapshots_<volume_type_name>`, `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.

func (QuoteSetV2Output) Volumes

func (o QuoteSetV2Output) Volumes() pulumi.IntOutput

Quota value for volumes. Changing this updates the existing quotaset.

type QuoteSetV2State

type QuoteSetV2State struct {
	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntPtrInput
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntPtrInput
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntPtrInput
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntPtrInput
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntPtrInput
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntPtrInput
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapInput
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntPtrInput
}

func (QuoteSetV2State) ElementType

func (QuoteSetV2State) ElementType() reflect.Type

type QuoteSetV3

type QuoteSetV3 struct {
	pulumi.CustomResourceState

	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntOutput `pulumi:"backupGigabytes"`
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntOutput `pulumi:"backups"`
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntOutput `pulumi:"gigabytes"`
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntOutput `pulumi:"groups"`
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntOutput `pulumi:"perVolumeGigabytes"`
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringOutput `pulumi:"region"`
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntOutput `pulumi:"snapshots"`
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapOutput `pulumi:"volumeTypeQuota"`
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntOutput `pulumi:"volumes"`
}

Manages a V3 block storage quotaset resource within OpenStack.

> **Note:** This usually requires admin privileges.

> **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack API

in case of delete call.

> **Note:** This resource has all-in creation so all optional quota arguments that were not specified are

created with zero value. This excludes volume type quota.

## Import

Quotasets can be imported using the `project_id/region`, e.g.

```sh $ pulumi import openstack:blockstorage/quoteSetV3:QuoteSetV3 quotaset_1 2a0f2240-c5e6-41de-896d-e80d97428d6b/region_1 ```

func GetQuoteSetV3

func GetQuoteSetV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *QuoteSetV3State, opts ...pulumi.ResourceOption) (*QuoteSetV3, error)

GetQuoteSetV3 gets an existing QuoteSetV3 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 NewQuoteSetV3

func NewQuoteSetV3(ctx *pulumi.Context,
	name string, args *QuoteSetV3Args, opts ...pulumi.ResourceOption) (*QuoteSetV3, error)

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

func (*QuoteSetV3) ElementType

func (*QuoteSetV3) ElementType() reflect.Type

func (*QuoteSetV3) ToQuoteSetV3Output

func (i *QuoteSetV3) ToQuoteSetV3Output() QuoteSetV3Output

func (*QuoteSetV3) ToQuoteSetV3OutputWithContext

func (i *QuoteSetV3) ToQuoteSetV3OutputWithContext(ctx context.Context) QuoteSetV3Output

type QuoteSetV3Args

type QuoteSetV3Args struct {
	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntPtrInput
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntPtrInput
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntPtrInput
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntPtrInput
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntPtrInput
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntPtrInput
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapInput
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntPtrInput
}

The set of arguments for constructing a QuoteSetV3 resource.

func (QuoteSetV3Args) ElementType

func (QuoteSetV3Args) ElementType() reflect.Type

type QuoteSetV3Array

type QuoteSetV3Array []QuoteSetV3Input

func (QuoteSetV3Array) ElementType

func (QuoteSetV3Array) ElementType() reflect.Type

func (QuoteSetV3Array) ToQuoteSetV3ArrayOutput

func (i QuoteSetV3Array) ToQuoteSetV3ArrayOutput() QuoteSetV3ArrayOutput

func (QuoteSetV3Array) ToQuoteSetV3ArrayOutputWithContext

func (i QuoteSetV3Array) ToQuoteSetV3ArrayOutputWithContext(ctx context.Context) QuoteSetV3ArrayOutput

type QuoteSetV3ArrayInput

type QuoteSetV3ArrayInput interface {
	pulumi.Input

	ToQuoteSetV3ArrayOutput() QuoteSetV3ArrayOutput
	ToQuoteSetV3ArrayOutputWithContext(context.Context) QuoteSetV3ArrayOutput
}

QuoteSetV3ArrayInput is an input type that accepts QuoteSetV3Array and QuoteSetV3ArrayOutput values. You can construct a concrete instance of `QuoteSetV3ArrayInput` via:

QuoteSetV3Array{ QuoteSetV3Args{...} }

type QuoteSetV3ArrayOutput

type QuoteSetV3ArrayOutput struct{ *pulumi.OutputState }

func (QuoteSetV3ArrayOutput) ElementType

func (QuoteSetV3ArrayOutput) ElementType() reflect.Type

func (QuoteSetV3ArrayOutput) Index

func (QuoteSetV3ArrayOutput) ToQuoteSetV3ArrayOutput

func (o QuoteSetV3ArrayOutput) ToQuoteSetV3ArrayOutput() QuoteSetV3ArrayOutput

func (QuoteSetV3ArrayOutput) ToQuoteSetV3ArrayOutputWithContext

func (o QuoteSetV3ArrayOutput) ToQuoteSetV3ArrayOutputWithContext(ctx context.Context) QuoteSetV3ArrayOutput

type QuoteSetV3Input

type QuoteSetV3Input interface {
	pulumi.Input

	ToQuoteSetV3Output() QuoteSetV3Output
	ToQuoteSetV3OutputWithContext(ctx context.Context) QuoteSetV3Output
}

type QuoteSetV3Map

type QuoteSetV3Map map[string]QuoteSetV3Input

func (QuoteSetV3Map) ElementType

func (QuoteSetV3Map) ElementType() reflect.Type

func (QuoteSetV3Map) ToQuoteSetV3MapOutput

func (i QuoteSetV3Map) ToQuoteSetV3MapOutput() QuoteSetV3MapOutput

func (QuoteSetV3Map) ToQuoteSetV3MapOutputWithContext

func (i QuoteSetV3Map) ToQuoteSetV3MapOutputWithContext(ctx context.Context) QuoteSetV3MapOutput

type QuoteSetV3MapInput

type QuoteSetV3MapInput interface {
	pulumi.Input

	ToQuoteSetV3MapOutput() QuoteSetV3MapOutput
	ToQuoteSetV3MapOutputWithContext(context.Context) QuoteSetV3MapOutput
}

QuoteSetV3MapInput is an input type that accepts QuoteSetV3Map and QuoteSetV3MapOutput values. You can construct a concrete instance of `QuoteSetV3MapInput` via:

QuoteSetV3Map{ "key": QuoteSetV3Args{...} }

type QuoteSetV3MapOutput

type QuoteSetV3MapOutput struct{ *pulumi.OutputState }

func (QuoteSetV3MapOutput) ElementType

func (QuoteSetV3MapOutput) ElementType() reflect.Type

func (QuoteSetV3MapOutput) MapIndex

func (QuoteSetV3MapOutput) ToQuoteSetV3MapOutput

func (o QuoteSetV3MapOutput) ToQuoteSetV3MapOutput() QuoteSetV3MapOutput

func (QuoteSetV3MapOutput) ToQuoteSetV3MapOutputWithContext

func (o QuoteSetV3MapOutput) ToQuoteSetV3MapOutputWithContext(ctx context.Context) QuoteSetV3MapOutput

type QuoteSetV3Output

type QuoteSetV3Output struct{ *pulumi.OutputState }

func (QuoteSetV3Output) BackupGigabytes

func (o QuoteSetV3Output) BackupGigabytes() pulumi.IntOutput

Quota value for backup gigabytes. Changing this updates the existing quotaset.

func (QuoteSetV3Output) Backups

func (o QuoteSetV3Output) Backups() pulumi.IntOutput

Quota value for backups. Changing this updates the existing quotaset.

func (QuoteSetV3Output) ElementType

func (QuoteSetV3Output) ElementType() reflect.Type

func (QuoteSetV3Output) Gigabytes

func (o QuoteSetV3Output) Gigabytes() pulumi.IntOutput

Quota value for gigabytes. Changing this updates the existing quotaset.

func (QuoteSetV3Output) Groups

func (o QuoteSetV3Output) Groups() pulumi.IntOutput

Quota value for groups. Changing this updates the existing quotaset.

func (QuoteSetV3Output) PerVolumeGigabytes

func (o QuoteSetV3Output) PerVolumeGigabytes() pulumi.IntOutput

Quota value for gigabytes per volume . Changing this updates the existing quotaset.

func (QuoteSetV3Output) ProjectId

func (o QuoteSetV3Output) ProjectId() pulumi.StringOutput

ID of the project to manage quotas. Changing this creates a new quotaset.

func (QuoteSetV3Output) Region

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new quotaset.

func (QuoteSetV3Output) Snapshots

func (o QuoteSetV3Output) Snapshots() pulumi.IntOutput

Quota value for snapshots. Changing this updates the existing quotaset.

func (QuoteSetV3Output) ToQuoteSetV3Output

func (o QuoteSetV3Output) ToQuoteSetV3Output() QuoteSetV3Output

func (QuoteSetV3Output) ToQuoteSetV3OutputWithContext

func (o QuoteSetV3Output) ToQuoteSetV3OutputWithContext(ctx context.Context) QuoteSetV3Output

func (QuoteSetV3Output) VolumeTypeQuota

func (o QuoteSetV3Output) VolumeTypeQuota() pulumi.StringMapOutput

Key/Value pairs for setting quota for volumes types. Possible keys are `snapshots_<volume_type_name>`, `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.

func (QuoteSetV3Output) Volumes

func (o QuoteSetV3Output) Volumes() pulumi.IntOutput

Quota value for volumes. Changing this updates the existing quotaset.

type QuoteSetV3State

type QuoteSetV3State struct {
	// Quota value for backup gigabytes. Changing
	// this updates the existing quotaset.
	BackupGigabytes pulumi.IntPtrInput
	// Quota value for backups. Changing this updates the
	// existing quotaset.
	Backups pulumi.IntPtrInput
	// Quota value for gigabytes. Changing this updates the
	// existing quotaset.
	Gigabytes pulumi.IntPtrInput
	// Quota value for groups. Changing this updates the
	// existing quotaset.
	Groups pulumi.IntPtrInput
	// Quota value for gigabytes per volume .
	// Changing this updates the existing quotaset.
	PerVolumeGigabytes pulumi.IntPtrInput
	// ID of the project to manage quotas. Changing this
	// creates a new quotaset.
	ProjectId pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// Quota value for snapshots. Changing this updates the
	// existing quotaset.
	Snapshots pulumi.IntPtrInput
	// Key/Value pairs for setting quota for
	// volumes types. Possible keys are `snapshots_<volume_type_name>`,
	// `volumes_<volume_type_name>` and `gigabytes_<volume_type_name>`.
	VolumeTypeQuota pulumi.StringMapInput
	// Quota value for volumes. Changing this updates the
	// existing quotaset.
	Volumes pulumi.IntPtrInput
}

func (QuoteSetV3State) ElementType

func (QuoteSetV3State) ElementType() reflect.Type

type Volume

type Volume struct {
	pulumi.CustomResourceState

	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeAttachmentArrayOutput `pulumi:"attachments"`
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
	// The backup ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `imageId`. Changing this
	// creates a new volume. Requires microversion >= 3.47.
	BackupId pulumi.StringPtrOutput `pulumi:"backupId"`
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrOutput `pulumi:"consistencyGroupId"`
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// When this option is set it allows extending
	// attached volumes. Note: updating size of an attached volume requires Cinder
	// support for version 3.42 and a compatible storage driver.
	EnableOnlineResize pulumi.BoolPtrOutput `pulumi:"enableOnlineResize"`
	// The image ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `backupId`. Changing this
	// creates a new volume.
	ImageId pulumi.StringPtrOutput `pulumi:"imageId"`
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringOutput `pulumi:"region"`
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeSchedulerHintArrayOutput `pulumi:"schedulerHints"`
	// The size of the volume to create (in gigabytes).
	Size pulumi.IntOutput `pulumi:"size"`
	// The snapshot ID from which to create the volume.
	// Conflicts with `sourceVolId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SnapshotId pulumi.StringPtrOutput `pulumi:"snapshotId"`
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrOutput `pulumi:"sourceReplica"`
	// The volume ID from which to create the volume.
	// Conflicts with `snapshotId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SourceVolId pulumi.StringPtrOutput `pulumi:"sourceVolId"`
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringOutput `pulumi:"volumeType"`
}

Manages a V3 volume resource within OpenStack.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewVolume(ctx, "volume_1", &blockstorage.VolumeArgs{
			Region:      pulumi.String("RegionOne"),
			Name:        pulumi.String("volume_1"),
			Description: pulumi.String("first test volume"),
			Size:        pulumi.Int(3),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volumes can be imported using the `id`, e.g.

```sh $ pulumi import openstack:blockstorage/volume:Volume volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d ```

func GetVolume

func GetVolume(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeState, opts ...pulumi.ResourceOption) (*Volume, error)

GetVolume gets an existing Volume 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 NewVolume

func NewVolume(ctx *pulumi.Context,
	name string, args *VolumeArgs, opts ...pulumi.ResourceOption) (*Volume, error)

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

func (*Volume) ElementType

func (*Volume) ElementType() reflect.Type

func (*Volume) ToVolumeOutput

func (i *Volume) ToVolumeOutput() VolumeOutput

func (*Volume) ToVolumeOutputWithContext

func (i *Volume) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

type VolumeArgs

type VolumeArgs struct {
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// The backup ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `imageId`. Changing this
	// creates a new volume. Requires microversion >= 3.47.
	BackupId pulumi.StringPtrInput
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// When this option is set it allows extending
	// attached volumes. Note: updating size of an attached volume requires Cinder
	// support for version 3.42 and a compatible storage driver.
	EnableOnlineResize pulumi.BoolPtrInput
	// The image ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `backupId`. Changing this
	// creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeSchedulerHintArrayInput
	// The size of the volume to create (in gigabytes).
	Size pulumi.IntInput
	// The snapshot ID from which to create the volume.
	// Conflicts with `sourceVolId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Conflicts with `snapshotId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

The set of arguments for constructing a Volume resource.

func (VolumeArgs) ElementType

func (VolumeArgs) ElementType() reflect.Type

type VolumeArray

type VolumeArray []VolumeInput

func (VolumeArray) ElementType

func (VolumeArray) ElementType() reflect.Type

func (VolumeArray) ToVolumeArrayOutput

func (i VolumeArray) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArray) ToVolumeArrayOutputWithContext

func (i VolumeArray) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeArrayInput

type VolumeArrayInput interface {
	pulumi.Input

	ToVolumeArrayOutput() VolumeArrayOutput
	ToVolumeArrayOutputWithContext(context.Context) VolumeArrayOutput
}

VolumeArrayInput is an input type that accepts VolumeArray and VolumeArrayOutput values. You can construct a concrete instance of `VolumeArrayInput` via:

VolumeArray{ VolumeArgs{...} }

type VolumeArrayOutput

type VolumeArrayOutput struct{ *pulumi.OutputState }

func (VolumeArrayOutput) ElementType

func (VolumeArrayOutput) ElementType() reflect.Type

func (VolumeArrayOutput) Index

func (VolumeArrayOutput) ToVolumeArrayOutput

func (o VolumeArrayOutput) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArrayOutput) ToVolumeArrayOutputWithContext

func (o VolumeArrayOutput) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeAttach

type VolumeAttach struct {
	pulumi.CustomResourceState

	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrOutput `pulumi:"attachMode"`
	// This is a map of key/value pairs that contain the connection
	// information. You will want to pass this information to a provisioner
	// script to finalize the connection. See below for more information.
	Data pulumi.StringMapOutput `pulumi:"data"`
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrOutput `pulumi:"device"`
	// The storage driver that the volume is based on.
	DriverVolumeType pulumi.StringOutput `pulumi:"driverVolumeType"`
	// The host to attach the volume to.
	HostName pulumi.StringOutput `pulumi:"hostName"`
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrOutput `pulumi:"initiator"`
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrOutput `pulumi:"ipAddress"`
	// A mount point base name for shared storage.
	MountPointBase pulumi.StringOutput `pulumi:"mountPointBase"`
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrOutput `pulumi:"multipath"`
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrOutput `pulumi:"osType"`
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrOutput `pulumi:"platform"`
	// The region in which to obtain the V3 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringOutput `pulumi:"region"`
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringOutput `pulumi:"volumeId"`
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrOutput `pulumi:"wwnn"`
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayOutput `pulumi:"wwpns"`
}

> **Note:** This resource usually requires admin privileges.

> **Note:** This resource does not actually attach a volume to an instance. Please use the `compute.VolumeAttach` resource for that.

> **Note:** All arguments including the `data` computed attribute will be stored in the raw state as plain-text. Read more about sensitive data in state.

Creates a general purpose attachment connection to a Block Storage volume using the OpenStack Block Storage (Cinder) v3 API.

Depending on your Block Storage service configuration, this resource can assist in attaching a volume to a non-OpenStack resource such as a bare-metal server or a remote virtual machine in a different cloud provider.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		volume1, err := blockstorage.NewVolume(ctx, "volume_1", &blockstorage.VolumeArgs{
			Name: pulumi.String("volume_1"),
			Size: pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		_, err = blockstorage.NewVolumeAttach(ctx, "va_1", &blockstorage.VolumeAttachArgs{
			VolumeId:  volume1.ID(),
			Device:    pulumi.String("auto"),
			HostName:  pulumi.String("devstack"),
			IpAddress: pulumi.String("192.168.255.10"),
			Initiator: pulumi.String("iqn.1993-08.org.debian:01:e9861fb1859"),
			OsType:    pulumi.String("linux2"),
			Platform:  pulumi.String("x86_64"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Volume Connection Data

Upon creation of this resource, a `data` exported attribute will be available. This attribute is a set of key/value pairs that contains the information required to complete the block storage connection.

As an example, creating an iSCSI-based volume will return the following:

This information can then be fed into a provisioner or a template shell script, where the final result would look something like:

The contents of `data` will vary from each Block Storage service. You must have a good understanding of how the service is configured and how to make the appropriate final connection. However, if used correctly, this has the flexibility to be able to attach OpenStack Block Storage volumes to non-OpenStack resources.

## Import

It is not possible to import this resource.

func GetVolumeAttach

func GetVolumeAttach(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeAttachState, opts ...pulumi.ResourceOption) (*VolumeAttach, error)

GetVolumeAttach gets an existing VolumeAttach 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 NewVolumeAttach

func NewVolumeAttach(ctx *pulumi.Context,
	name string, args *VolumeAttachArgs, opts ...pulumi.ResourceOption) (*VolumeAttach, error)

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

func (*VolumeAttach) ElementType

func (*VolumeAttach) ElementType() reflect.Type

func (*VolumeAttach) ToVolumeAttachOutput

func (i *VolumeAttach) ToVolumeAttachOutput() VolumeAttachOutput

func (*VolumeAttach) ToVolumeAttachOutputWithContext

func (i *VolumeAttach) ToVolumeAttachOutputWithContext(ctx context.Context) VolumeAttachOutput

type VolumeAttachArgs

type VolumeAttachArgs struct {
	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrInput
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrInput
	// The host to attach the volume to.
	HostName pulumi.StringInput
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrInput
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrInput
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrInput
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrInput
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrInput
	// The region in which to obtain the V3 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringPtrInput
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringInput
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrInput
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayInput
}

The set of arguments for constructing a VolumeAttach resource.

func (VolumeAttachArgs) ElementType

func (VolumeAttachArgs) ElementType() reflect.Type

type VolumeAttachArray

type VolumeAttachArray []VolumeAttachInput

func (VolumeAttachArray) ElementType

func (VolumeAttachArray) ElementType() reflect.Type

func (VolumeAttachArray) ToVolumeAttachArrayOutput

func (i VolumeAttachArray) ToVolumeAttachArrayOutput() VolumeAttachArrayOutput

func (VolumeAttachArray) ToVolumeAttachArrayOutputWithContext

func (i VolumeAttachArray) ToVolumeAttachArrayOutputWithContext(ctx context.Context) VolumeAttachArrayOutput

type VolumeAttachArrayInput

type VolumeAttachArrayInput interface {
	pulumi.Input

	ToVolumeAttachArrayOutput() VolumeAttachArrayOutput
	ToVolumeAttachArrayOutputWithContext(context.Context) VolumeAttachArrayOutput
}

VolumeAttachArrayInput is an input type that accepts VolumeAttachArray and VolumeAttachArrayOutput values. You can construct a concrete instance of `VolumeAttachArrayInput` via:

VolumeAttachArray{ VolumeAttachArgs{...} }

type VolumeAttachArrayOutput

type VolumeAttachArrayOutput struct{ *pulumi.OutputState }

func (VolumeAttachArrayOutput) ElementType

func (VolumeAttachArrayOutput) ElementType() reflect.Type

func (VolumeAttachArrayOutput) Index

func (VolumeAttachArrayOutput) ToVolumeAttachArrayOutput

func (o VolumeAttachArrayOutput) ToVolumeAttachArrayOutput() VolumeAttachArrayOutput

func (VolumeAttachArrayOutput) ToVolumeAttachArrayOutputWithContext

func (o VolumeAttachArrayOutput) ToVolumeAttachArrayOutputWithContext(ctx context.Context) VolumeAttachArrayOutput

type VolumeAttachInput

type VolumeAttachInput interface {
	pulumi.Input

	ToVolumeAttachOutput() VolumeAttachOutput
	ToVolumeAttachOutputWithContext(ctx context.Context) VolumeAttachOutput
}

type VolumeAttachMap

type VolumeAttachMap map[string]VolumeAttachInput

func (VolumeAttachMap) ElementType

func (VolumeAttachMap) ElementType() reflect.Type

func (VolumeAttachMap) ToVolumeAttachMapOutput

func (i VolumeAttachMap) ToVolumeAttachMapOutput() VolumeAttachMapOutput

func (VolumeAttachMap) ToVolumeAttachMapOutputWithContext

func (i VolumeAttachMap) ToVolumeAttachMapOutputWithContext(ctx context.Context) VolumeAttachMapOutput

type VolumeAttachMapInput

type VolumeAttachMapInput interface {
	pulumi.Input

	ToVolumeAttachMapOutput() VolumeAttachMapOutput
	ToVolumeAttachMapOutputWithContext(context.Context) VolumeAttachMapOutput
}

VolumeAttachMapInput is an input type that accepts VolumeAttachMap and VolumeAttachMapOutput values. You can construct a concrete instance of `VolumeAttachMapInput` via:

VolumeAttachMap{ "key": VolumeAttachArgs{...} }

type VolumeAttachMapOutput

type VolumeAttachMapOutput struct{ *pulumi.OutputState }

func (VolumeAttachMapOutput) ElementType

func (VolumeAttachMapOutput) ElementType() reflect.Type

func (VolumeAttachMapOutput) MapIndex

func (VolumeAttachMapOutput) ToVolumeAttachMapOutput

func (o VolumeAttachMapOutput) ToVolumeAttachMapOutput() VolumeAttachMapOutput

func (VolumeAttachMapOutput) ToVolumeAttachMapOutputWithContext

func (o VolumeAttachMapOutput) ToVolumeAttachMapOutputWithContext(ctx context.Context) VolumeAttachMapOutput

type VolumeAttachOutput

type VolumeAttachOutput struct{ *pulumi.OutputState }

func (VolumeAttachOutput) AttachMode

func (o VolumeAttachOutput) AttachMode() pulumi.StringPtrOutput

Specify whether to attach the volume as Read-Only (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted. If left unspecified, the Block Storage API will apply a default of `rw`.

func (VolumeAttachOutput) Data

This is a map of key/value pairs that contain the connection information. You will want to pass this information to a provisioner script to finalize the connection. See below for more information.

func (VolumeAttachOutput) Device

The device to tell the Block Storage service this volume will be attached as. This is purely for informational purposes. You can specify `auto` or a device such as `/dev/vdc`.

func (VolumeAttachOutput) DriverVolumeType

func (o VolumeAttachOutput) DriverVolumeType() pulumi.StringOutput

The storage driver that the volume is based on.

func (VolumeAttachOutput) ElementType

func (VolumeAttachOutput) ElementType() reflect.Type

func (VolumeAttachOutput) HostName

func (o VolumeAttachOutput) HostName() pulumi.StringOutput

The host to attach the volume to.

func (VolumeAttachOutput) Initiator

The iSCSI initiator string to make the connection.

func (VolumeAttachOutput) IpAddress

The IP address of the `hostName` above.

func (VolumeAttachOutput) MountPointBase

func (o VolumeAttachOutput) MountPointBase() pulumi.StringOutput

A mount point base name for shared storage.

func (VolumeAttachOutput) Multipath

func (o VolumeAttachOutput) Multipath() pulumi.BoolPtrOutput

Whether to connect to this volume via multipath.

func (VolumeAttachOutput) OsType

The iSCSI initiator OS type.

func (VolumeAttachOutput) Platform

The iSCSI initiator platform.

func (VolumeAttachOutput) Region

The region in which to obtain the V3 Block Storage client. A Block Storage client is needed to create a volume attachment. If omitted, the `region` argument of the provider is used. Changing this creates a new volume attachment.

func (VolumeAttachOutput) ToVolumeAttachOutput

func (o VolumeAttachOutput) ToVolumeAttachOutput() VolumeAttachOutput

func (VolumeAttachOutput) ToVolumeAttachOutputWithContext

func (o VolumeAttachOutput) ToVolumeAttachOutputWithContext(ctx context.Context) VolumeAttachOutput

func (VolumeAttachOutput) VolumeId

func (o VolumeAttachOutput) VolumeId() pulumi.StringOutput

The ID of the Volume to attach to an Instance.

func (VolumeAttachOutput) Wwnn

A wwnn name. Used for Fibre Channel connections.

func (VolumeAttachOutput) Wwpns

An array of wwpn strings. Used for Fibre Channel connections.

type VolumeAttachState

type VolumeAttachState struct {
	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrInput
	// This is a map of key/value pairs that contain the connection
	// information. You will want to pass this information to a provisioner
	// script to finalize the connection. See below for more information.
	Data pulumi.StringMapInput
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrInput
	// The storage driver that the volume is based on.
	DriverVolumeType pulumi.StringPtrInput
	// The host to attach the volume to.
	HostName pulumi.StringPtrInput
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrInput
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrInput
	// A mount point base name for shared storage.
	MountPointBase pulumi.StringPtrInput
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrInput
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrInput
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrInput
	// The region in which to obtain the V3 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringPtrInput
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringPtrInput
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrInput
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayInput
}

func (VolumeAttachState) ElementType

func (VolumeAttachState) ElementType() reflect.Type

type VolumeAttachV2

type VolumeAttachV2 struct {
	pulumi.CustomResourceState

	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrOutput `pulumi:"attachMode"`
	// This is a map of key/value pairs that contain the connection
	// information. You will want to pass this information to a provisioner
	// script to finalize the connection. See below for more information.
	Data pulumi.StringMapOutput `pulumi:"data"`
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrOutput `pulumi:"device"`
	// The storage driver that the volume is based on.
	DriverVolumeType pulumi.StringOutput `pulumi:"driverVolumeType"`
	// The host to attach the volume to.
	HostName pulumi.StringOutput `pulumi:"hostName"`
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrOutput `pulumi:"initiator"`
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrOutput `pulumi:"ipAddress"`
	// A mount point base name for shared storage.
	MountPointBase pulumi.StringOutput `pulumi:"mountPointBase"`
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrOutput `pulumi:"multipath"`
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrOutput `pulumi:"osType"`
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrOutput `pulumi:"platform"`
	// The region in which to obtain the V2 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringOutput `pulumi:"region"`
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringOutput `pulumi:"volumeId"`
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrOutput `pulumi:"wwnn"`
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayOutput `pulumi:"wwpns"`
}

> **Note:** This resource usually requires admin privileges.

> **Note:** This resource does not actually attach a volume to an instance. Please use the `compute.VolumeAttach` resource for that.

> **Note:** All arguments including the `data` computed attribute will be stored in the raw state as plain-text. Read more about sensitive data in state.

Creates a general purpose attachment connection to a Block Storage volume using the OpenStack Block Storage (Cinder) v2 API.

Depending on your Block Storage service configuration, this resource can assist in attaching a volume to a non-OpenStack resource such as a bare-metal server or a remote virtual machine in a different cloud provider.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		volume1, err := blockstorage.NewVolumeV2(ctx, "volume_1", &blockstorage.VolumeV2Args{
			Name: pulumi.String("volume_1"),
			Size: pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		_, err = blockstorage.NewVolumeAttachV2(ctx, "va_1", &blockstorage.VolumeAttachV2Args{
			VolumeId:  volume1.ID(),
			Device:    pulumi.String("auto"),
			HostName:  pulumi.String("devstack"),
			IpAddress: pulumi.String("192.168.255.10"),
			Initiator: pulumi.String("iqn.1993-08.org.debian:01:e9861fb1859"),
			OsType:    pulumi.String("linux2"),
			Platform:  pulumi.String("x86_64"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Volume Connection Data

Upon creation of this resource, a `data` exported attribute will be available. This attribute is a set of key/value pairs that contains the information required to complete the block storage connection.

As an example, creating an iSCSI-based volume will return the following:

This information can then be fed into a provisioner or a template shell script, where the final result would look something like:

The contents of `data` will vary from each Block Storage service. You must have a good understanding of how the service is configured and how to make the appropriate final connection. However, if used correctly, this has the flexibility to be able to attach OpenStack Block Storage volumes to non-OpenStack resources.

## Import

It is not possible to import this resource.

func GetVolumeAttachV2

func GetVolumeAttachV2(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeAttachV2State, opts ...pulumi.ResourceOption) (*VolumeAttachV2, error)

GetVolumeAttachV2 gets an existing VolumeAttachV2 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 NewVolumeAttachV2

func NewVolumeAttachV2(ctx *pulumi.Context,
	name string, args *VolumeAttachV2Args, opts ...pulumi.ResourceOption) (*VolumeAttachV2, error)

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

func (*VolumeAttachV2) ElementType

func (*VolumeAttachV2) ElementType() reflect.Type

func (*VolumeAttachV2) ToVolumeAttachV2Output

func (i *VolumeAttachV2) ToVolumeAttachV2Output() VolumeAttachV2Output

func (*VolumeAttachV2) ToVolumeAttachV2OutputWithContext

func (i *VolumeAttachV2) ToVolumeAttachV2OutputWithContext(ctx context.Context) VolumeAttachV2Output

type VolumeAttachV2Args

type VolumeAttachV2Args struct {
	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrInput
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrInput
	// The host to attach the volume to.
	HostName pulumi.StringInput
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrInput
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrInput
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrInput
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrInput
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrInput
	// The region in which to obtain the V2 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringPtrInput
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringInput
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrInput
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayInput
}

The set of arguments for constructing a VolumeAttachV2 resource.

func (VolumeAttachV2Args) ElementType

func (VolumeAttachV2Args) ElementType() reflect.Type

type VolumeAttachV2Array

type VolumeAttachV2Array []VolumeAttachV2Input

func (VolumeAttachV2Array) ElementType

func (VolumeAttachV2Array) ElementType() reflect.Type

func (VolumeAttachV2Array) ToVolumeAttachV2ArrayOutput

func (i VolumeAttachV2Array) ToVolumeAttachV2ArrayOutput() VolumeAttachV2ArrayOutput

func (VolumeAttachV2Array) ToVolumeAttachV2ArrayOutputWithContext

func (i VolumeAttachV2Array) ToVolumeAttachV2ArrayOutputWithContext(ctx context.Context) VolumeAttachV2ArrayOutput

type VolumeAttachV2ArrayInput

type VolumeAttachV2ArrayInput interface {
	pulumi.Input

	ToVolumeAttachV2ArrayOutput() VolumeAttachV2ArrayOutput
	ToVolumeAttachV2ArrayOutputWithContext(context.Context) VolumeAttachV2ArrayOutput
}

VolumeAttachV2ArrayInput is an input type that accepts VolumeAttachV2Array and VolumeAttachV2ArrayOutput values. You can construct a concrete instance of `VolumeAttachV2ArrayInput` via:

VolumeAttachV2Array{ VolumeAttachV2Args{...} }

type VolumeAttachV2ArrayOutput

type VolumeAttachV2ArrayOutput struct{ *pulumi.OutputState }

func (VolumeAttachV2ArrayOutput) ElementType

func (VolumeAttachV2ArrayOutput) ElementType() reflect.Type

func (VolumeAttachV2ArrayOutput) Index

func (VolumeAttachV2ArrayOutput) ToVolumeAttachV2ArrayOutput

func (o VolumeAttachV2ArrayOutput) ToVolumeAttachV2ArrayOutput() VolumeAttachV2ArrayOutput

func (VolumeAttachV2ArrayOutput) ToVolumeAttachV2ArrayOutputWithContext

func (o VolumeAttachV2ArrayOutput) ToVolumeAttachV2ArrayOutputWithContext(ctx context.Context) VolumeAttachV2ArrayOutput

type VolumeAttachV2Input

type VolumeAttachV2Input interface {
	pulumi.Input

	ToVolumeAttachV2Output() VolumeAttachV2Output
	ToVolumeAttachV2OutputWithContext(ctx context.Context) VolumeAttachV2Output
}

type VolumeAttachV2Map

type VolumeAttachV2Map map[string]VolumeAttachV2Input

func (VolumeAttachV2Map) ElementType

func (VolumeAttachV2Map) ElementType() reflect.Type

func (VolumeAttachV2Map) ToVolumeAttachV2MapOutput

func (i VolumeAttachV2Map) ToVolumeAttachV2MapOutput() VolumeAttachV2MapOutput

func (VolumeAttachV2Map) ToVolumeAttachV2MapOutputWithContext

func (i VolumeAttachV2Map) ToVolumeAttachV2MapOutputWithContext(ctx context.Context) VolumeAttachV2MapOutput

type VolumeAttachV2MapInput

type VolumeAttachV2MapInput interface {
	pulumi.Input

	ToVolumeAttachV2MapOutput() VolumeAttachV2MapOutput
	ToVolumeAttachV2MapOutputWithContext(context.Context) VolumeAttachV2MapOutput
}

VolumeAttachV2MapInput is an input type that accepts VolumeAttachV2Map and VolumeAttachV2MapOutput values. You can construct a concrete instance of `VolumeAttachV2MapInput` via:

VolumeAttachV2Map{ "key": VolumeAttachV2Args{...} }

type VolumeAttachV2MapOutput

type VolumeAttachV2MapOutput struct{ *pulumi.OutputState }

func (VolumeAttachV2MapOutput) ElementType

func (VolumeAttachV2MapOutput) ElementType() reflect.Type

func (VolumeAttachV2MapOutput) MapIndex

func (VolumeAttachV2MapOutput) ToVolumeAttachV2MapOutput

func (o VolumeAttachV2MapOutput) ToVolumeAttachV2MapOutput() VolumeAttachV2MapOutput

func (VolumeAttachV2MapOutput) ToVolumeAttachV2MapOutputWithContext

func (o VolumeAttachV2MapOutput) ToVolumeAttachV2MapOutputWithContext(ctx context.Context) VolumeAttachV2MapOutput

type VolumeAttachV2Output

type VolumeAttachV2Output struct{ *pulumi.OutputState }

func (VolumeAttachV2Output) AttachMode

Specify whether to attach the volume as Read-Only (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted. If left unspecified, the Block Storage API will apply a default of `rw`.

func (VolumeAttachV2Output) Data

This is a map of key/value pairs that contain the connection information. You will want to pass this information to a provisioner script to finalize the connection. See below for more information.

func (VolumeAttachV2Output) Device

The device to tell the Block Storage service this volume will be attached as. This is purely for informational purposes. You can specify `auto` or a device such as `/dev/vdc`.

func (VolumeAttachV2Output) DriverVolumeType

func (o VolumeAttachV2Output) DriverVolumeType() pulumi.StringOutput

The storage driver that the volume is based on.

func (VolumeAttachV2Output) ElementType

func (VolumeAttachV2Output) ElementType() reflect.Type

func (VolumeAttachV2Output) HostName

The host to attach the volume to.

func (VolumeAttachV2Output) Initiator

The iSCSI initiator string to make the connection.

func (VolumeAttachV2Output) IpAddress

The IP address of the `hostName` above.

func (VolumeAttachV2Output) MountPointBase

func (o VolumeAttachV2Output) MountPointBase() pulumi.StringOutput

A mount point base name for shared storage.

func (VolumeAttachV2Output) Multipath

Whether to connect to this volume via multipath.

func (VolumeAttachV2Output) OsType

The iSCSI initiator OS type.

func (VolumeAttachV2Output) Platform

The iSCSI initiator platform.

func (VolumeAttachV2Output) Region

The region in which to obtain the V2 Block Storage client. A Block Storage client is needed to create a volume attachment. If omitted, the `region` argument of the provider is used. Changing this creates a new volume attachment.

func (VolumeAttachV2Output) ToVolumeAttachV2Output

func (o VolumeAttachV2Output) ToVolumeAttachV2Output() VolumeAttachV2Output

func (VolumeAttachV2Output) ToVolumeAttachV2OutputWithContext

func (o VolumeAttachV2Output) ToVolumeAttachV2OutputWithContext(ctx context.Context) VolumeAttachV2Output

func (VolumeAttachV2Output) VolumeId

The ID of the Volume to attach to an Instance.

func (VolumeAttachV2Output) Wwnn

A wwnn name. Used for Fibre Channel connections.

func (VolumeAttachV2Output) Wwpns

An array of wwpn strings. Used for Fibre Channel connections.

type VolumeAttachV2State

type VolumeAttachV2State struct {
	// Specify whether to attach the volume as Read-Only
	// (`ro`) or Read-Write (`rw`). Only values of `ro` and `rw` are accepted.
	// If left unspecified, the Block Storage API will apply a default of `rw`.
	AttachMode pulumi.StringPtrInput
	// This is a map of key/value pairs that contain the connection
	// information. You will want to pass this information to a provisioner
	// script to finalize the connection. See below for more information.
	Data pulumi.StringMapInput
	// The device to tell the Block Storage service this
	// volume will be attached as. This is purely for informational purposes.
	// You can specify `auto` or a device such as `/dev/vdc`.
	Device pulumi.StringPtrInput
	// The storage driver that the volume is based on.
	DriverVolumeType pulumi.StringPtrInput
	// The host to attach the volume to.
	HostName pulumi.StringPtrInput
	// The iSCSI initiator string to make the connection.
	Initiator pulumi.StringPtrInput
	// The IP address of the `hostName` above.
	IpAddress pulumi.StringPtrInput
	// A mount point base name for shared storage.
	MountPointBase pulumi.StringPtrInput
	// Whether to connect to this volume via multipath.
	Multipath pulumi.BoolPtrInput
	// The iSCSI initiator OS type.
	OsType pulumi.StringPtrInput
	// The iSCSI initiator platform.
	Platform pulumi.StringPtrInput
	// The region in which to obtain the V2 Block Storage
	// client. A Block Storage client is needed to create a volume attachment.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume attachment.
	Region pulumi.StringPtrInput
	// The ID of the Volume to attach to an Instance.
	VolumeId pulumi.StringPtrInput
	// A wwnn name. Used for Fibre Channel connections.
	Wwnn pulumi.StringPtrInput
	// An array of wwpn strings. Used for Fibre Channel
	// connections.
	Wwpns pulumi.StringArrayInput
}

func (VolumeAttachV2State) ElementType

func (VolumeAttachV2State) ElementType() reflect.Type

type VolumeAttachment

type VolumeAttachment struct {
	Device     *string `pulumi:"device"`
	Id         *string `pulumi:"id"`
	InstanceId *string `pulumi:"instanceId"`
}

type VolumeAttachmentArgs

type VolumeAttachmentArgs struct {
	Device     pulumi.StringPtrInput `pulumi:"device"`
	Id         pulumi.StringPtrInput `pulumi:"id"`
	InstanceId pulumi.StringPtrInput `pulumi:"instanceId"`
}

func (VolumeAttachmentArgs) ElementType

func (VolumeAttachmentArgs) ElementType() reflect.Type

func (VolumeAttachmentArgs) ToVolumeAttachmentOutput

func (i VolumeAttachmentArgs) ToVolumeAttachmentOutput() VolumeAttachmentOutput

func (VolumeAttachmentArgs) ToVolumeAttachmentOutputWithContext

func (i VolumeAttachmentArgs) ToVolumeAttachmentOutputWithContext(ctx context.Context) VolumeAttachmentOutput

type VolumeAttachmentArray

type VolumeAttachmentArray []VolumeAttachmentInput

func (VolumeAttachmentArray) ElementType

func (VolumeAttachmentArray) ElementType() reflect.Type

func (VolumeAttachmentArray) ToVolumeAttachmentArrayOutput

func (i VolumeAttachmentArray) ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput

func (VolumeAttachmentArray) ToVolumeAttachmentArrayOutputWithContext

func (i VolumeAttachmentArray) ToVolumeAttachmentArrayOutputWithContext(ctx context.Context) VolumeAttachmentArrayOutput

type VolumeAttachmentArrayInput

type VolumeAttachmentArrayInput interface {
	pulumi.Input

	ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput
	ToVolumeAttachmentArrayOutputWithContext(context.Context) VolumeAttachmentArrayOutput
}

VolumeAttachmentArrayInput is an input type that accepts VolumeAttachmentArray and VolumeAttachmentArrayOutput values. You can construct a concrete instance of `VolumeAttachmentArrayInput` via:

VolumeAttachmentArray{ VolumeAttachmentArgs{...} }

type VolumeAttachmentArrayOutput

type VolumeAttachmentArrayOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentArrayOutput) ElementType

func (VolumeAttachmentArrayOutput) Index

func (VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutput

func (o VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput

func (VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutputWithContext

func (o VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutputWithContext(ctx context.Context) VolumeAttachmentArrayOutput

type VolumeAttachmentInput

type VolumeAttachmentInput interface {
	pulumi.Input

	ToVolumeAttachmentOutput() VolumeAttachmentOutput
	ToVolumeAttachmentOutputWithContext(context.Context) VolumeAttachmentOutput
}

VolumeAttachmentInput is an input type that accepts VolumeAttachmentArgs and VolumeAttachmentOutput values. You can construct a concrete instance of `VolumeAttachmentInput` via:

VolumeAttachmentArgs{...}

type VolumeAttachmentOutput

type VolumeAttachmentOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentOutput) Device

func (VolumeAttachmentOutput) ElementType

func (VolumeAttachmentOutput) ElementType() reflect.Type

func (VolumeAttachmentOutput) Id

func (VolumeAttachmentOutput) InstanceId

func (VolumeAttachmentOutput) ToVolumeAttachmentOutput

func (o VolumeAttachmentOutput) ToVolumeAttachmentOutput() VolumeAttachmentOutput

func (VolumeAttachmentOutput) ToVolumeAttachmentOutputWithContext

func (o VolumeAttachmentOutput) ToVolumeAttachmentOutputWithContext(ctx context.Context) VolumeAttachmentOutput

type VolumeInput

type VolumeInput interface {
	pulumi.Input

	ToVolumeOutput() VolumeOutput
	ToVolumeOutputWithContext(ctx context.Context) VolumeOutput
}

type VolumeMap

type VolumeMap map[string]VolumeInput

func (VolumeMap) ElementType

func (VolumeMap) ElementType() reflect.Type

func (VolumeMap) ToVolumeMapOutput

func (i VolumeMap) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMap) ToVolumeMapOutputWithContext

func (i VolumeMap) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeMapInput

type VolumeMapInput interface {
	pulumi.Input

	ToVolumeMapOutput() VolumeMapOutput
	ToVolumeMapOutputWithContext(context.Context) VolumeMapOutput
}

VolumeMapInput is an input type that accepts VolumeMap and VolumeMapOutput values. You can construct a concrete instance of `VolumeMapInput` via:

VolumeMap{ "key": VolumeArgs{...} }

type VolumeMapOutput

type VolumeMapOutput struct{ *pulumi.OutputState }

func (VolumeMapOutput) ElementType

func (VolumeMapOutput) ElementType() reflect.Type

func (VolumeMapOutput) MapIndex

func (VolumeMapOutput) ToVolumeMapOutput

func (o VolumeMapOutput) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMapOutput) ToVolumeMapOutputWithContext

func (o VolumeMapOutput) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeOutput

type VolumeOutput struct{ *pulumi.OutputState }

func (VolumeOutput) Attachments

func (o VolumeOutput) Attachments() VolumeAttachmentArrayOutput

If a volume is attached to an instance, this attribute will display the Attachment ID, Instance ID, and the Device as the Instance sees it.

func (VolumeOutput) AvailabilityZone

func (o VolumeOutput) AvailabilityZone() pulumi.StringOutput

The availability zone for the volume. Changing this creates a new volume.

func (VolumeOutput) BackupId

func (o VolumeOutput) BackupId() pulumi.StringPtrOutput

The backup ID from which to create the volume. Conflicts with `snapshotId`, `sourceVolId`, `imageId`. Changing this creates a new volume. Requires microversion >= 3.47.

func (VolumeOutput) ConsistencyGroupId

func (o VolumeOutput) ConsistencyGroupId() pulumi.StringPtrOutput

The consistency group to place the volume in.

func (VolumeOutput) Description

func (o VolumeOutput) Description() pulumi.StringPtrOutput

A description of the volume. Changing this updates the volume's description.

func (VolumeOutput) ElementType

func (VolumeOutput) ElementType() reflect.Type

func (VolumeOutput) EnableOnlineResize

func (o VolumeOutput) EnableOnlineResize() pulumi.BoolPtrOutput

When this option is set it allows extending attached volumes. Note: updating size of an attached volume requires Cinder support for version 3.42 and a compatible storage driver.

func (VolumeOutput) ImageId

func (o VolumeOutput) ImageId() pulumi.StringPtrOutput

The image ID from which to create the volume. Conflicts with `snapshotId`, `sourceVolId`, `backupId`. Changing this creates a new volume.

func (VolumeOutput) Metadata

func (o VolumeOutput) Metadata() pulumi.StringMapOutput

Metadata key/value pairs to associate with the volume. Changing this updates the existing volume metadata.

func (VolumeOutput) Name

func (o VolumeOutput) Name() pulumi.StringOutput

A unique name for the volume. Changing this updates the volume's name.

func (VolumeOutput) Region

func (o VolumeOutput) Region() pulumi.StringOutput

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new volume.

func (VolumeOutput) SchedulerHints

func (o VolumeOutput) SchedulerHints() VolumeSchedulerHintArrayOutput

Provide the Cinder scheduler with hints on where to instantiate a volume in the OpenStack cloud. The available hints are described below.

func (VolumeOutput) Size

func (o VolumeOutput) Size() pulumi.IntOutput

The size of the volume to create (in gigabytes).

func (VolumeOutput) SnapshotId

func (o VolumeOutput) SnapshotId() pulumi.StringPtrOutput

The snapshot ID from which to create the volume. Conflicts with `sourceVolId`, `imageId`, `backupId`. Changing this creates a new volume.

func (VolumeOutput) SourceReplica

func (o VolumeOutput) SourceReplica() pulumi.StringPtrOutput

The volume ID to replicate with.

func (VolumeOutput) SourceVolId

func (o VolumeOutput) SourceVolId() pulumi.StringPtrOutput

The volume ID from which to create the volume. Conflicts with `snapshotId`, `imageId`, `backupId`. Changing this creates a new volume.

func (VolumeOutput) ToVolumeOutput

func (o VolumeOutput) ToVolumeOutput() VolumeOutput

func (VolumeOutput) ToVolumeOutputWithContext

func (o VolumeOutput) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

func (VolumeOutput) VolumeType

func (o VolumeOutput) VolumeType() pulumi.StringOutput

The type of volume to create. Changing this creates a new volume.

type VolumeSchedulerHint

type VolumeSchedulerHint struct {
	// Arbitrary key/value pairs of additional
	// properties to pass to the scheduler.
	AdditionalProperties map[string]string `pulumi:"additionalProperties"`
	// The volume should be scheduled on a
	// different host from the set of volumes specified in the list provided.
	DifferentHosts []string `pulumi:"differentHosts"`
	// An instance UUID. The volume should be
	// scheduled on the same host as the instance.
	LocalToInstance *string `pulumi:"localToInstance"`
	// A conditional query that a back-end must pass in
	// order to host a volume. The query must use the `JsonFilter` syntax
	// which is described
	// [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter).
	// At this time, only simple queries are supported. Compound queries using
	// `and`, `or`, or `not` are not supported. An example of a simple query is:
	Query *string `pulumi:"query"`
	// A list of volume UUIDs. The volume should be
	// scheduled on the same host as another volume specified in the list provided.
	SameHosts []string `pulumi:"sameHosts"`
}

type VolumeSchedulerHintArgs

type VolumeSchedulerHintArgs struct {
	// Arbitrary key/value pairs of additional
	// properties to pass to the scheduler.
	AdditionalProperties pulumi.StringMapInput `pulumi:"additionalProperties"`
	// The volume should be scheduled on a
	// different host from the set of volumes specified in the list provided.
	DifferentHosts pulumi.StringArrayInput `pulumi:"differentHosts"`
	// An instance UUID. The volume should be
	// scheduled on the same host as the instance.
	LocalToInstance pulumi.StringPtrInput `pulumi:"localToInstance"`
	// A conditional query that a back-end must pass in
	// order to host a volume. The query must use the `JsonFilter` syntax
	// which is described
	// [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter).
	// At this time, only simple queries are supported. Compound queries using
	// `and`, `or`, or `not` are not supported. An example of a simple query is:
	Query pulumi.StringPtrInput `pulumi:"query"`
	// A list of volume UUIDs. The volume should be
	// scheduled on the same host as another volume specified in the list provided.
	SameHosts pulumi.StringArrayInput `pulumi:"sameHosts"`
}

func (VolumeSchedulerHintArgs) ElementType

func (VolumeSchedulerHintArgs) ElementType() reflect.Type

func (VolumeSchedulerHintArgs) ToVolumeSchedulerHintOutput

func (i VolumeSchedulerHintArgs) ToVolumeSchedulerHintOutput() VolumeSchedulerHintOutput

func (VolumeSchedulerHintArgs) ToVolumeSchedulerHintOutputWithContext

func (i VolumeSchedulerHintArgs) ToVolumeSchedulerHintOutputWithContext(ctx context.Context) VolumeSchedulerHintOutput

type VolumeSchedulerHintArray

type VolumeSchedulerHintArray []VolumeSchedulerHintInput

func (VolumeSchedulerHintArray) ElementType

func (VolumeSchedulerHintArray) ElementType() reflect.Type

func (VolumeSchedulerHintArray) ToVolumeSchedulerHintArrayOutput

func (i VolumeSchedulerHintArray) ToVolumeSchedulerHintArrayOutput() VolumeSchedulerHintArrayOutput

func (VolumeSchedulerHintArray) ToVolumeSchedulerHintArrayOutputWithContext

func (i VolumeSchedulerHintArray) ToVolumeSchedulerHintArrayOutputWithContext(ctx context.Context) VolumeSchedulerHintArrayOutput

type VolumeSchedulerHintArrayInput

type VolumeSchedulerHintArrayInput interface {
	pulumi.Input

	ToVolumeSchedulerHintArrayOutput() VolumeSchedulerHintArrayOutput
	ToVolumeSchedulerHintArrayOutputWithContext(context.Context) VolumeSchedulerHintArrayOutput
}

VolumeSchedulerHintArrayInput is an input type that accepts VolumeSchedulerHintArray and VolumeSchedulerHintArrayOutput values. You can construct a concrete instance of `VolumeSchedulerHintArrayInput` via:

VolumeSchedulerHintArray{ VolumeSchedulerHintArgs{...} }

type VolumeSchedulerHintArrayOutput

type VolumeSchedulerHintArrayOutput struct{ *pulumi.OutputState }

func (VolumeSchedulerHintArrayOutput) ElementType

func (VolumeSchedulerHintArrayOutput) Index

func (VolumeSchedulerHintArrayOutput) ToVolumeSchedulerHintArrayOutput

func (o VolumeSchedulerHintArrayOutput) ToVolumeSchedulerHintArrayOutput() VolumeSchedulerHintArrayOutput

func (VolumeSchedulerHintArrayOutput) ToVolumeSchedulerHintArrayOutputWithContext

func (o VolumeSchedulerHintArrayOutput) ToVolumeSchedulerHintArrayOutputWithContext(ctx context.Context) VolumeSchedulerHintArrayOutput

type VolumeSchedulerHintInput

type VolumeSchedulerHintInput interface {
	pulumi.Input

	ToVolumeSchedulerHintOutput() VolumeSchedulerHintOutput
	ToVolumeSchedulerHintOutputWithContext(context.Context) VolumeSchedulerHintOutput
}

VolumeSchedulerHintInput is an input type that accepts VolumeSchedulerHintArgs and VolumeSchedulerHintOutput values. You can construct a concrete instance of `VolumeSchedulerHintInput` via:

VolumeSchedulerHintArgs{...}

type VolumeSchedulerHintOutput

type VolumeSchedulerHintOutput struct{ *pulumi.OutputState }

func (VolumeSchedulerHintOutput) AdditionalProperties

func (o VolumeSchedulerHintOutput) AdditionalProperties() pulumi.StringMapOutput

Arbitrary key/value pairs of additional properties to pass to the scheduler.

func (VolumeSchedulerHintOutput) DifferentHosts

The volume should be scheduled on a different host from the set of volumes specified in the list provided.

func (VolumeSchedulerHintOutput) ElementType

func (VolumeSchedulerHintOutput) ElementType() reflect.Type

func (VolumeSchedulerHintOutput) LocalToInstance

func (o VolumeSchedulerHintOutput) LocalToInstance() pulumi.StringPtrOutput

An instance UUID. The volume should be scheduled on the same host as the instance.

func (VolumeSchedulerHintOutput) Query

A conditional query that a back-end must pass in order to host a volume. The query must use the `JsonFilter` syntax which is described [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter). At this time, only simple queries are supported. Compound queries using `and`, `or`, or `not` are not supported. An example of a simple query is:

func (VolumeSchedulerHintOutput) SameHosts

A list of volume UUIDs. The volume should be scheduled on the same host as another volume specified in the list provided.

func (VolumeSchedulerHintOutput) ToVolumeSchedulerHintOutput

func (o VolumeSchedulerHintOutput) ToVolumeSchedulerHintOutput() VolumeSchedulerHintOutput

func (VolumeSchedulerHintOutput) ToVolumeSchedulerHintOutputWithContext

func (o VolumeSchedulerHintOutput) ToVolumeSchedulerHintOutputWithContext(ctx context.Context) VolumeSchedulerHintOutput

type VolumeState

type VolumeState struct {
	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeAttachmentArrayInput
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// The backup ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `imageId`. Changing this
	// creates a new volume. Requires microversion >= 3.47.
	BackupId pulumi.StringPtrInput
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// When this option is set it allows extending
	// attached volumes. Note: updating size of an attached volume requires Cinder
	// support for version 3.42 and a compatible storage driver.
	EnableOnlineResize pulumi.BoolPtrInput
	// The image ID from which to create the volume.
	// Conflicts with `snapshotId`, `sourceVolId`, `backupId`. Changing this
	// creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeSchedulerHintArrayInput
	// The size of the volume to create (in gigabytes).
	Size pulumi.IntPtrInput
	// The snapshot ID from which to create the volume.
	// Conflicts with `sourceVolId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Conflicts with `snapshotId`, `imageId`, `backupId`. Changing this
	// creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

func (VolumeState) ElementType

func (VolumeState) ElementType() reflect.Type

type VolumeTypeAccessV3

type VolumeTypeAccessV3 struct {
	pulumi.CustomResourceState

	// ID of the project to give access to. Changing this
	// creates a new resource.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringOutput `pulumi:"region"`
	// ID of the volume type to give access to. Changing
	// this creates a new resource.
	VolumeTypeId pulumi.StringOutput `pulumi:"volumeTypeId"`
}

Manages a V3 block storage volume type access resource within OpenStack.

> **Note:** This usually requires admin privileges.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project1, err := identity.NewProject(ctx, "project_1", &identity.ProjectArgs{
			Name: pulumi.String("project_1"),
		})
		if err != nil {
			return err
		}
		volumeType1, err := blockstorage.NewVolumeTypeV3(ctx, "volume_type_1", &blockstorage.VolumeTypeV3Args{
			Name:     pulumi.String("volume_type_1"),
			IsPublic: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		_, err = blockstorage.NewVolumeTypeAccessV3(ctx, "volume_type_access", &blockstorage.VolumeTypeAccessV3Args{
			ProjectId:    project1.ID(),
			VolumeTypeId: volumeType1.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volume types access can be imported using the `volume_type_id/project_id`, e.g.

```sh $ pulumi import openstack:blockstorage/volumeTypeAccessV3:VolumeTypeAccessV3 volume_type_access 941793f0-0a34-4bc4-b72e-a6326ae58283/ed498e81f0cc448bae0ad4f8f21bf67f ```

func GetVolumeTypeAccessV3

func GetVolumeTypeAccessV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeTypeAccessV3State, opts ...pulumi.ResourceOption) (*VolumeTypeAccessV3, error)

GetVolumeTypeAccessV3 gets an existing VolumeTypeAccessV3 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 NewVolumeTypeAccessV3

func NewVolumeTypeAccessV3(ctx *pulumi.Context,
	name string, args *VolumeTypeAccessV3Args, opts ...pulumi.ResourceOption) (*VolumeTypeAccessV3, error)

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

func (*VolumeTypeAccessV3) ElementType

func (*VolumeTypeAccessV3) ElementType() reflect.Type

func (*VolumeTypeAccessV3) ToVolumeTypeAccessV3Output

func (i *VolumeTypeAccessV3) ToVolumeTypeAccessV3Output() VolumeTypeAccessV3Output

func (*VolumeTypeAccessV3) ToVolumeTypeAccessV3OutputWithContext

func (i *VolumeTypeAccessV3) ToVolumeTypeAccessV3OutputWithContext(ctx context.Context) VolumeTypeAccessV3Output

type VolumeTypeAccessV3Args

type VolumeTypeAccessV3Args struct {
	// ID of the project to give access to. Changing this
	// creates a new resource.
	ProjectId pulumi.StringInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// ID of the volume type to give access to. Changing
	// this creates a new resource.
	VolumeTypeId pulumi.StringInput
}

The set of arguments for constructing a VolumeTypeAccessV3 resource.

func (VolumeTypeAccessV3Args) ElementType

func (VolumeTypeAccessV3Args) ElementType() reflect.Type

type VolumeTypeAccessV3Array

type VolumeTypeAccessV3Array []VolumeTypeAccessV3Input

func (VolumeTypeAccessV3Array) ElementType

func (VolumeTypeAccessV3Array) ElementType() reflect.Type

func (VolumeTypeAccessV3Array) ToVolumeTypeAccessV3ArrayOutput

func (i VolumeTypeAccessV3Array) ToVolumeTypeAccessV3ArrayOutput() VolumeTypeAccessV3ArrayOutput

func (VolumeTypeAccessV3Array) ToVolumeTypeAccessV3ArrayOutputWithContext

func (i VolumeTypeAccessV3Array) ToVolumeTypeAccessV3ArrayOutputWithContext(ctx context.Context) VolumeTypeAccessV3ArrayOutput

type VolumeTypeAccessV3ArrayInput

type VolumeTypeAccessV3ArrayInput interface {
	pulumi.Input

	ToVolumeTypeAccessV3ArrayOutput() VolumeTypeAccessV3ArrayOutput
	ToVolumeTypeAccessV3ArrayOutputWithContext(context.Context) VolumeTypeAccessV3ArrayOutput
}

VolumeTypeAccessV3ArrayInput is an input type that accepts VolumeTypeAccessV3Array and VolumeTypeAccessV3ArrayOutput values. You can construct a concrete instance of `VolumeTypeAccessV3ArrayInput` via:

VolumeTypeAccessV3Array{ VolumeTypeAccessV3Args{...} }

type VolumeTypeAccessV3ArrayOutput

type VolumeTypeAccessV3ArrayOutput struct{ *pulumi.OutputState }

func (VolumeTypeAccessV3ArrayOutput) ElementType

func (VolumeTypeAccessV3ArrayOutput) Index

func (VolumeTypeAccessV3ArrayOutput) ToVolumeTypeAccessV3ArrayOutput

func (o VolumeTypeAccessV3ArrayOutput) ToVolumeTypeAccessV3ArrayOutput() VolumeTypeAccessV3ArrayOutput

func (VolumeTypeAccessV3ArrayOutput) ToVolumeTypeAccessV3ArrayOutputWithContext

func (o VolumeTypeAccessV3ArrayOutput) ToVolumeTypeAccessV3ArrayOutputWithContext(ctx context.Context) VolumeTypeAccessV3ArrayOutput

type VolumeTypeAccessV3Input

type VolumeTypeAccessV3Input interface {
	pulumi.Input

	ToVolumeTypeAccessV3Output() VolumeTypeAccessV3Output
	ToVolumeTypeAccessV3OutputWithContext(ctx context.Context) VolumeTypeAccessV3Output
}

type VolumeTypeAccessV3Map

type VolumeTypeAccessV3Map map[string]VolumeTypeAccessV3Input

func (VolumeTypeAccessV3Map) ElementType

func (VolumeTypeAccessV3Map) ElementType() reflect.Type

func (VolumeTypeAccessV3Map) ToVolumeTypeAccessV3MapOutput

func (i VolumeTypeAccessV3Map) ToVolumeTypeAccessV3MapOutput() VolumeTypeAccessV3MapOutput

func (VolumeTypeAccessV3Map) ToVolumeTypeAccessV3MapOutputWithContext

func (i VolumeTypeAccessV3Map) ToVolumeTypeAccessV3MapOutputWithContext(ctx context.Context) VolumeTypeAccessV3MapOutput

type VolumeTypeAccessV3MapInput

type VolumeTypeAccessV3MapInput interface {
	pulumi.Input

	ToVolumeTypeAccessV3MapOutput() VolumeTypeAccessV3MapOutput
	ToVolumeTypeAccessV3MapOutputWithContext(context.Context) VolumeTypeAccessV3MapOutput
}

VolumeTypeAccessV3MapInput is an input type that accepts VolumeTypeAccessV3Map and VolumeTypeAccessV3MapOutput values. You can construct a concrete instance of `VolumeTypeAccessV3MapInput` via:

VolumeTypeAccessV3Map{ "key": VolumeTypeAccessV3Args{...} }

type VolumeTypeAccessV3MapOutput

type VolumeTypeAccessV3MapOutput struct{ *pulumi.OutputState }

func (VolumeTypeAccessV3MapOutput) ElementType

func (VolumeTypeAccessV3MapOutput) MapIndex

func (VolumeTypeAccessV3MapOutput) ToVolumeTypeAccessV3MapOutput

func (o VolumeTypeAccessV3MapOutput) ToVolumeTypeAccessV3MapOutput() VolumeTypeAccessV3MapOutput

func (VolumeTypeAccessV3MapOutput) ToVolumeTypeAccessV3MapOutputWithContext

func (o VolumeTypeAccessV3MapOutput) ToVolumeTypeAccessV3MapOutputWithContext(ctx context.Context) VolumeTypeAccessV3MapOutput

type VolumeTypeAccessV3Output

type VolumeTypeAccessV3Output struct{ *pulumi.OutputState }

func (VolumeTypeAccessV3Output) ElementType

func (VolumeTypeAccessV3Output) ElementType() reflect.Type

func (VolumeTypeAccessV3Output) ProjectId

ID of the project to give access to. Changing this creates a new resource.

func (VolumeTypeAccessV3Output) Region

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new quotaset.

func (VolumeTypeAccessV3Output) ToVolumeTypeAccessV3Output

func (o VolumeTypeAccessV3Output) ToVolumeTypeAccessV3Output() VolumeTypeAccessV3Output

func (VolumeTypeAccessV3Output) ToVolumeTypeAccessV3OutputWithContext

func (o VolumeTypeAccessV3Output) ToVolumeTypeAccessV3OutputWithContext(ctx context.Context) VolumeTypeAccessV3Output

func (VolumeTypeAccessV3Output) VolumeTypeId

func (o VolumeTypeAccessV3Output) VolumeTypeId() pulumi.StringOutput

ID of the volume type to give access to. Changing this creates a new resource.

type VolumeTypeAccessV3State

type VolumeTypeAccessV3State struct {
	// ID of the project to give access to. Changing this
	// creates a new resource.
	ProjectId pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
	// ID of the volume type to give access to. Changing
	// this creates a new resource.
	VolumeTypeId pulumi.StringPtrInput
}

func (VolumeTypeAccessV3State) ElementType

func (VolumeTypeAccessV3State) ElementType() reflect.Type

type VolumeTypeV3

type VolumeTypeV3 struct {
	pulumi.CustomResourceState

	// Human-readable description of the port. Changing
	// this updates the `description` of an existing volume type.
	Description pulumi.StringOutput `pulumi:"description"`
	// Key/Value pairs of metadata for the volume type.
	ExtraSpecs pulumi.StringMapOutput `pulumi:"extraSpecs"`
	// Whether the volume type is public. Changing
	// this updates the `isPublic` of an existing volume type.
	IsPublic pulumi.BoolOutput `pulumi:"isPublic"`
	// Name of the volume type.  Changing this
	// updates the `name` of an existing volume type.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a V3 block storage volume type resource within OpenStack.

> **Note:** This usually requires admin privileges.

## Example Usage

### Basic Volume Type

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewVolumeTypeV3(ctx, "volume_type_1", &blockstorage.VolumeTypeV3Args{
			Name:        pulumi.String("volume_type_1"),
			Description: pulumi.String("Volume type 1"),
			ExtraSpecs: pulumi.StringMap{
				"capabilities":        pulumi.String("gpu"),
				"volume_backend_name": pulumi.String("ssd"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Volume Type with multiattach enabled

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewVolumeTypeV3(ctx, "multiattach", &blockstorage.VolumeTypeV3Args{
			Name:        pulumi.String("multiattach"),
			Description: pulumi.String("Multiattach-enabled volume type"),
			ExtraSpecs: pulumi.StringMap{
				"multiattach": pulumi.String("<is> True"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volume types can be imported using the `volume_type_id`, e.g.

```sh $ pulumi import openstack:blockstorage/volumeTypeV3:VolumeTypeV3 volume_type_1 941793f0-0a34-4bc4-b72e-a6326ae58283 ```

func GetVolumeTypeV3

func GetVolumeTypeV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeTypeV3State, opts ...pulumi.ResourceOption) (*VolumeTypeV3, error)

GetVolumeTypeV3 gets an existing VolumeTypeV3 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 NewVolumeTypeV3

func NewVolumeTypeV3(ctx *pulumi.Context,
	name string, args *VolumeTypeV3Args, opts ...pulumi.ResourceOption) (*VolumeTypeV3, error)

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

func (*VolumeTypeV3) ElementType

func (*VolumeTypeV3) ElementType() reflect.Type

func (*VolumeTypeV3) ToVolumeTypeV3Output

func (i *VolumeTypeV3) ToVolumeTypeV3Output() VolumeTypeV3Output

func (*VolumeTypeV3) ToVolumeTypeV3OutputWithContext

func (i *VolumeTypeV3) ToVolumeTypeV3OutputWithContext(ctx context.Context) VolumeTypeV3Output

type VolumeTypeV3Args

type VolumeTypeV3Args struct {
	// Human-readable description of the port. Changing
	// this updates the `description` of an existing volume type.
	Description pulumi.StringPtrInput
	// Key/Value pairs of metadata for the volume type.
	ExtraSpecs pulumi.StringMapInput
	// Whether the volume type is public. Changing
	// this updates the `isPublic` of an existing volume type.
	IsPublic pulumi.BoolPtrInput
	// Name of the volume type.  Changing this
	// updates the `name` of an existing volume type.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a VolumeTypeV3 resource.

func (VolumeTypeV3Args) ElementType

func (VolumeTypeV3Args) ElementType() reflect.Type

type VolumeTypeV3Array

type VolumeTypeV3Array []VolumeTypeV3Input

func (VolumeTypeV3Array) ElementType

func (VolumeTypeV3Array) ElementType() reflect.Type

func (VolumeTypeV3Array) ToVolumeTypeV3ArrayOutput

func (i VolumeTypeV3Array) ToVolumeTypeV3ArrayOutput() VolumeTypeV3ArrayOutput

func (VolumeTypeV3Array) ToVolumeTypeV3ArrayOutputWithContext

func (i VolumeTypeV3Array) ToVolumeTypeV3ArrayOutputWithContext(ctx context.Context) VolumeTypeV3ArrayOutput

type VolumeTypeV3ArrayInput

type VolumeTypeV3ArrayInput interface {
	pulumi.Input

	ToVolumeTypeV3ArrayOutput() VolumeTypeV3ArrayOutput
	ToVolumeTypeV3ArrayOutputWithContext(context.Context) VolumeTypeV3ArrayOutput
}

VolumeTypeV3ArrayInput is an input type that accepts VolumeTypeV3Array and VolumeTypeV3ArrayOutput values. You can construct a concrete instance of `VolumeTypeV3ArrayInput` via:

VolumeTypeV3Array{ VolumeTypeV3Args{...} }

type VolumeTypeV3ArrayOutput

type VolumeTypeV3ArrayOutput struct{ *pulumi.OutputState }

func (VolumeTypeV3ArrayOutput) ElementType

func (VolumeTypeV3ArrayOutput) ElementType() reflect.Type

func (VolumeTypeV3ArrayOutput) Index

func (VolumeTypeV3ArrayOutput) ToVolumeTypeV3ArrayOutput

func (o VolumeTypeV3ArrayOutput) ToVolumeTypeV3ArrayOutput() VolumeTypeV3ArrayOutput

func (VolumeTypeV3ArrayOutput) ToVolumeTypeV3ArrayOutputWithContext

func (o VolumeTypeV3ArrayOutput) ToVolumeTypeV3ArrayOutputWithContext(ctx context.Context) VolumeTypeV3ArrayOutput

type VolumeTypeV3Input

type VolumeTypeV3Input interface {
	pulumi.Input

	ToVolumeTypeV3Output() VolumeTypeV3Output
	ToVolumeTypeV3OutputWithContext(ctx context.Context) VolumeTypeV3Output
}

type VolumeTypeV3Map

type VolumeTypeV3Map map[string]VolumeTypeV3Input

func (VolumeTypeV3Map) ElementType

func (VolumeTypeV3Map) ElementType() reflect.Type

func (VolumeTypeV3Map) ToVolumeTypeV3MapOutput

func (i VolumeTypeV3Map) ToVolumeTypeV3MapOutput() VolumeTypeV3MapOutput

func (VolumeTypeV3Map) ToVolumeTypeV3MapOutputWithContext

func (i VolumeTypeV3Map) ToVolumeTypeV3MapOutputWithContext(ctx context.Context) VolumeTypeV3MapOutput

type VolumeTypeV3MapInput

type VolumeTypeV3MapInput interface {
	pulumi.Input

	ToVolumeTypeV3MapOutput() VolumeTypeV3MapOutput
	ToVolumeTypeV3MapOutputWithContext(context.Context) VolumeTypeV3MapOutput
}

VolumeTypeV3MapInput is an input type that accepts VolumeTypeV3Map and VolumeTypeV3MapOutput values. You can construct a concrete instance of `VolumeTypeV3MapInput` via:

VolumeTypeV3Map{ "key": VolumeTypeV3Args{...} }

type VolumeTypeV3MapOutput

type VolumeTypeV3MapOutput struct{ *pulumi.OutputState }

func (VolumeTypeV3MapOutput) ElementType

func (VolumeTypeV3MapOutput) ElementType() reflect.Type

func (VolumeTypeV3MapOutput) MapIndex

func (VolumeTypeV3MapOutput) ToVolumeTypeV3MapOutput

func (o VolumeTypeV3MapOutput) ToVolumeTypeV3MapOutput() VolumeTypeV3MapOutput

func (VolumeTypeV3MapOutput) ToVolumeTypeV3MapOutputWithContext

func (o VolumeTypeV3MapOutput) ToVolumeTypeV3MapOutputWithContext(ctx context.Context) VolumeTypeV3MapOutput

type VolumeTypeV3Output

type VolumeTypeV3Output struct{ *pulumi.OutputState }

func (VolumeTypeV3Output) Description

func (o VolumeTypeV3Output) Description() pulumi.StringOutput

Human-readable description of the port. Changing this updates the `description` of an existing volume type.

func (VolumeTypeV3Output) ElementType

func (VolumeTypeV3Output) ElementType() reflect.Type

func (VolumeTypeV3Output) ExtraSpecs

func (o VolumeTypeV3Output) ExtraSpecs() pulumi.StringMapOutput

Key/Value pairs of metadata for the volume type.

func (VolumeTypeV3Output) IsPublic

func (o VolumeTypeV3Output) IsPublic() pulumi.BoolOutput

Whether the volume type is public. Changing this updates the `isPublic` of an existing volume type.

func (VolumeTypeV3Output) Name

Name of the volume type. Changing this updates the `name` of an existing volume type.

func (VolumeTypeV3Output) Region

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new quotaset.

func (VolumeTypeV3Output) ToVolumeTypeV3Output

func (o VolumeTypeV3Output) ToVolumeTypeV3Output() VolumeTypeV3Output

func (VolumeTypeV3Output) ToVolumeTypeV3OutputWithContext

func (o VolumeTypeV3Output) ToVolumeTypeV3OutputWithContext(ctx context.Context) VolumeTypeV3Output

type VolumeTypeV3State

type VolumeTypeV3State struct {
	// Human-readable description of the port. Changing
	// this updates the `description` of an existing volume type.
	Description pulumi.StringPtrInput
	// Key/Value pairs of metadata for the volume type.
	ExtraSpecs pulumi.StringMapInput
	// Whether the volume type is public. Changing
	// this updates the `isPublic` of an existing volume type.
	IsPublic pulumi.BoolPtrInput
	// Name of the volume type.  Changing this
	// updates the `name` of an existing volume type.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new quotaset.
	Region pulumi.StringPtrInput
}

func (VolumeTypeV3State) ElementType

func (VolumeTypeV3State) ElementType() reflect.Type

type VolumeV1

type VolumeV1 struct {
	pulumi.CustomResourceState

	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeV1AttachmentArrayOutput `pulumi:"attachments"`
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrOutput `pulumi:"imageId"`
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringOutput `pulumi:"region"`
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntOutput `pulumi:"size"`
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrOutput `pulumi:"snapshotId"`
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrOutput `pulumi:"sourceVolId"`
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringOutput `pulumi:"volumeType"`
}

Manages a V1 volume resource within OpenStack.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewVolumeV1(ctx, "volume_1", &blockstorage.VolumeV1Args{
			Region:      pulumi.String("RegionOne"),
			Name:        pulumi.String("tf-test-volume"),
			Description: pulumi.String("first test volume"),
			Size:        pulumi.Int(3),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volumes can be imported using the `id`, e.g.

```sh $ pulumi import openstack:blockstorage/volumeV1:VolumeV1 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d ```

func GetVolumeV1

func GetVolumeV1(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeV1State, opts ...pulumi.ResourceOption) (*VolumeV1, error)

GetVolumeV1 gets an existing VolumeV1 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 NewVolumeV1

func NewVolumeV1(ctx *pulumi.Context,
	name string, args *VolumeV1Args, opts ...pulumi.ResourceOption) (*VolumeV1, error)

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

func (*VolumeV1) ElementType

func (*VolumeV1) ElementType() reflect.Type

func (*VolumeV1) ToVolumeV1Output

func (i *VolumeV1) ToVolumeV1Output() VolumeV1Output

func (*VolumeV1) ToVolumeV1OutputWithContext

func (i *VolumeV1) ToVolumeV1OutputWithContext(ctx context.Context) VolumeV1Output

type VolumeV1Args

type VolumeV1Args struct {
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntInput
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

The set of arguments for constructing a VolumeV1 resource.

func (VolumeV1Args) ElementType

func (VolumeV1Args) ElementType() reflect.Type

type VolumeV1Array

type VolumeV1Array []VolumeV1Input

func (VolumeV1Array) ElementType

func (VolumeV1Array) ElementType() reflect.Type

func (VolumeV1Array) ToVolumeV1ArrayOutput

func (i VolumeV1Array) ToVolumeV1ArrayOutput() VolumeV1ArrayOutput

func (VolumeV1Array) ToVolumeV1ArrayOutputWithContext

func (i VolumeV1Array) ToVolumeV1ArrayOutputWithContext(ctx context.Context) VolumeV1ArrayOutput

type VolumeV1ArrayInput

type VolumeV1ArrayInput interface {
	pulumi.Input

	ToVolumeV1ArrayOutput() VolumeV1ArrayOutput
	ToVolumeV1ArrayOutputWithContext(context.Context) VolumeV1ArrayOutput
}

VolumeV1ArrayInput is an input type that accepts VolumeV1Array and VolumeV1ArrayOutput values. You can construct a concrete instance of `VolumeV1ArrayInput` via:

VolumeV1Array{ VolumeV1Args{...} }

type VolumeV1ArrayOutput

type VolumeV1ArrayOutput struct{ *pulumi.OutputState }

func (VolumeV1ArrayOutput) ElementType

func (VolumeV1ArrayOutput) ElementType() reflect.Type

func (VolumeV1ArrayOutput) Index

func (VolumeV1ArrayOutput) ToVolumeV1ArrayOutput

func (o VolumeV1ArrayOutput) ToVolumeV1ArrayOutput() VolumeV1ArrayOutput

func (VolumeV1ArrayOutput) ToVolumeV1ArrayOutputWithContext

func (o VolumeV1ArrayOutput) ToVolumeV1ArrayOutputWithContext(ctx context.Context) VolumeV1ArrayOutput

type VolumeV1Attachment

type VolumeV1Attachment struct {
	Device     *string `pulumi:"device"`
	Id         *string `pulumi:"id"`
	InstanceId *string `pulumi:"instanceId"`
}

type VolumeV1AttachmentArgs

type VolumeV1AttachmentArgs struct {
	Device     pulumi.StringPtrInput `pulumi:"device"`
	Id         pulumi.StringPtrInput `pulumi:"id"`
	InstanceId pulumi.StringPtrInput `pulumi:"instanceId"`
}

func (VolumeV1AttachmentArgs) ElementType

func (VolumeV1AttachmentArgs) ElementType() reflect.Type

func (VolumeV1AttachmentArgs) ToVolumeV1AttachmentOutput

func (i VolumeV1AttachmentArgs) ToVolumeV1AttachmentOutput() VolumeV1AttachmentOutput

func (VolumeV1AttachmentArgs) ToVolumeV1AttachmentOutputWithContext

func (i VolumeV1AttachmentArgs) ToVolumeV1AttachmentOutputWithContext(ctx context.Context) VolumeV1AttachmentOutput

type VolumeV1AttachmentArray

type VolumeV1AttachmentArray []VolumeV1AttachmentInput

func (VolumeV1AttachmentArray) ElementType

func (VolumeV1AttachmentArray) ElementType() reflect.Type

func (VolumeV1AttachmentArray) ToVolumeV1AttachmentArrayOutput

func (i VolumeV1AttachmentArray) ToVolumeV1AttachmentArrayOutput() VolumeV1AttachmentArrayOutput

func (VolumeV1AttachmentArray) ToVolumeV1AttachmentArrayOutputWithContext

func (i VolumeV1AttachmentArray) ToVolumeV1AttachmentArrayOutputWithContext(ctx context.Context) VolumeV1AttachmentArrayOutput

type VolumeV1AttachmentArrayInput

type VolumeV1AttachmentArrayInput interface {
	pulumi.Input

	ToVolumeV1AttachmentArrayOutput() VolumeV1AttachmentArrayOutput
	ToVolumeV1AttachmentArrayOutputWithContext(context.Context) VolumeV1AttachmentArrayOutput
}

VolumeV1AttachmentArrayInput is an input type that accepts VolumeV1AttachmentArray and VolumeV1AttachmentArrayOutput values. You can construct a concrete instance of `VolumeV1AttachmentArrayInput` via:

VolumeV1AttachmentArray{ VolumeV1AttachmentArgs{...} }

type VolumeV1AttachmentArrayOutput

type VolumeV1AttachmentArrayOutput struct{ *pulumi.OutputState }

func (VolumeV1AttachmentArrayOutput) ElementType

func (VolumeV1AttachmentArrayOutput) Index

func (VolumeV1AttachmentArrayOutput) ToVolumeV1AttachmentArrayOutput

func (o VolumeV1AttachmentArrayOutput) ToVolumeV1AttachmentArrayOutput() VolumeV1AttachmentArrayOutput

func (VolumeV1AttachmentArrayOutput) ToVolumeV1AttachmentArrayOutputWithContext

func (o VolumeV1AttachmentArrayOutput) ToVolumeV1AttachmentArrayOutputWithContext(ctx context.Context) VolumeV1AttachmentArrayOutput

type VolumeV1AttachmentInput

type VolumeV1AttachmentInput interface {
	pulumi.Input

	ToVolumeV1AttachmentOutput() VolumeV1AttachmentOutput
	ToVolumeV1AttachmentOutputWithContext(context.Context) VolumeV1AttachmentOutput
}

VolumeV1AttachmentInput is an input type that accepts VolumeV1AttachmentArgs and VolumeV1AttachmentOutput values. You can construct a concrete instance of `VolumeV1AttachmentInput` via:

VolumeV1AttachmentArgs{...}

type VolumeV1AttachmentOutput

type VolumeV1AttachmentOutput struct{ *pulumi.OutputState }

func (VolumeV1AttachmentOutput) Device

func (VolumeV1AttachmentOutput) ElementType

func (VolumeV1AttachmentOutput) ElementType() reflect.Type

func (VolumeV1AttachmentOutput) Id

func (VolumeV1AttachmentOutput) InstanceId

func (VolumeV1AttachmentOutput) ToVolumeV1AttachmentOutput

func (o VolumeV1AttachmentOutput) ToVolumeV1AttachmentOutput() VolumeV1AttachmentOutput

func (VolumeV1AttachmentOutput) ToVolumeV1AttachmentOutputWithContext

func (o VolumeV1AttachmentOutput) ToVolumeV1AttachmentOutputWithContext(ctx context.Context) VolumeV1AttachmentOutput

type VolumeV1Input

type VolumeV1Input interface {
	pulumi.Input

	ToVolumeV1Output() VolumeV1Output
	ToVolumeV1OutputWithContext(ctx context.Context) VolumeV1Output
}

type VolumeV1Map

type VolumeV1Map map[string]VolumeV1Input

func (VolumeV1Map) ElementType

func (VolumeV1Map) ElementType() reflect.Type

func (VolumeV1Map) ToVolumeV1MapOutput

func (i VolumeV1Map) ToVolumeV1MapOutput() VolumeV1MapOutput

func (VolumeV1Map) ToVolumeV1MapOutputWithContext

func (i VolumeV1Map) ToVolumeV1MapOutputWithContext(ctx context.Context) VolumeV1MapOutput

type VolumeV1MapInput

type VolumeV1MapInput interface {
	pulumi.Input

	ToVolumeV1MapOutput() VolumeV1MapOutput
	ToVolumeV1MapOutputWithContext(context.Context) VolumeV1MapOutput
}

VolumeV1MapInput is an input type that accepts VolumeV1Map and VolumeV1MapOutput values. You can construct a concrete instance of `VolumeV1MapInput` via:

VolumeV1Map{ "key": VolumeV1Args{...} }

type VolumeV1MapOutput

type VolumeV1MapOutput struct{ *pulumi.OutputState }

func (VolumeV1MapOutput) ElementType

func (VolumeV1MapOutput) ElementType() reflect.Type

func (VolumeV1MapOutput) MapIndex

func (VolumeV1MapOutput) ToVolumeV1MapOutput

func (o VolumeV1MapOutput) ToVolumeV1MapOutput() VolumeV1MapOutput

func (VolumeV1MapOutput) ToVolumeV1MapOutputWithContext

func (o VolumeV1MapOutput) ToVolumeV1MapOutputWithContext(ctx context.Context) VolumeV1MapOutput

type VolumeV1Output

type VolumeV1Output struct{ *pulumi.OutputState }

func (VolumeV1Output) Attachments

If a volume is attached to an instance, this attribute will display the Attachment ID, Instance ID, and the Device as the Instance sees it.

func (VolumeV1Output) AvailabilityZone

func (o VolumeV1Output) AvailabilityZone() pulumi.StringOutput

The availability zone for the volume. Changing this creates a new volume.

func (VolumeV1Output) Description

func (o VolumeV1Output) Description() pulumi.StringPtrOutput

A description of the volume. Changing this updates the volume's description.

func (VolumeV1Output) ElementType

func (VolumeV1Output) ElementType() reflect.Type

func (VolumeV1Output) ImageId

The image ID from which to create the volume. Changing this creates a new volume.

func (VolumeV1Output) Metadata

func (o VolumeV1Output) Metadata() pulumi.StringMapOutput

Metadata key/value pairs to associate with the volume. Changing this updates the existing volume metadata.

func (VolumeV1Output) Name

A unique name for the volume. Changing this updates the volume's name.

func (VolumeV1Output) Region

func (o VolumeV1Output) Region() pulumi.StringOutput

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new volume.

func (VolumeV1Output) Size

func (o VolumeV1Output) Size() pulumi.IntOutput

The size of the volume to create (in gigabytes). Changing this creates a new volume.

func (VolumeV1Output) SnapshotId

func (o VolumeV1Output) SnapshotId() pulumi.StringPtrOutput

The snapshot ID from which to create the volume. Changing this creates a new volume.

func (VolumeV1Output) SourceVolId

func (o VolumeV1Output) SourceVolId() pulumi.StringPtrOutput

The volume ID from which to create the volume. Changing this creates a new volume.

func (VolumeV1Output) ToVolumeV1Output

func (o VolumeV1Output) ToVolumeV1Output() VolumeV1Output

func (VolumeV1Output) ToVolumeV1OutputWithContext

func (o VolumeV1Output) ToVolumeV1OutputWithContext(ctx context.Context) VolumeV1Output

func (VolumeV1Output) VolumeType

func (o VolumeV1Output) VolumeType() pulumi.StringOutput

The type of volume to create. Changing this creates a new volume.

type VolumeV1State

type VolumeV1State struct {
	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeV1AttachmentArrayInput
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntPtrInput
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

func (VolumeV1State) ElementType

func (VolumeV1State) ElementType() reflect.Type

type VolumeV2

type VolumeV2 struct {
	pulumi.CustomResourceState

	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeV2AttachmentArrayOutput `pulumi:"attachments"`
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrOutput `pulumi:"consistencyGroupId"`
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrOutput `pulumi:"imageId"`
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringOutput `pulumi:"region"`
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeV2SchedulerHintArrayOutput `pulumi:"schedulerHints"`
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntOutput `pulumi:"size"`
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrOutput `pulumi:"snapshotId"`
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrOutput `pulumi:"sourceReplica"`
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrOutput `pulumi:"sourceVolId"`
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringOutput `pulumi:"volumeType"`
}

Manages a V2 volume resource within OpenStack.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := blockstorage.NewVolumeV2(ctx, "volume_1", &blockstorage.VolumeV2Args{
			Region:      pulumi.String("RegionOne"),
			Name:        pulumi.String("volume_1"),
			Description: pulumi.String("first test volume"),
			Size:        pulumi.Int(3),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volumes can be imported using the `id`, e.g.

```sh $ pulumi import openstack:blockstorage/volumeV2:VolumeV2 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d ```

func GetVolumeV2

func GetVolumeV2(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeV2State, opts ...pulumi.ResourceOption) (*VolumeV2, error)

GetVolumeV2 gets an existing VolumeV2 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 NewVolumeV2

func NewVolumeV2(ctx *pulumi.Context,
	name string, args *VolumeV2Args, opts ...pulumi.ResourceOption) (*VolumeV2, error)

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

func (*VolumeV2) ElementType

func (*VolumeV2) ElementType() reflect.Type

func (*VolumeV2) ToVolumeV2Output

func (i *VolumeV2) ToVolumeV2Output() VolumeV2Output

func (*VolumeV2) ToVolumeV2OutputWithContext

func (i *VolumeV2) ToVolumeV2OutputWithContext(ctx context.Context) VolumeV2Output

type VolumeV2Args

type VolumeV2Args struct {
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeV2SchedulerHintArrayInput
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntInput
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

The set of arguments for constructing a VolumeV2 resource.

func (VolumeV2Args) ElementType

func (VolumeV2Args) ElementType() reflect.Type

type VolumeV2Array

type VolumeV2Array []VolumeV2Input

func (VolumeV2Array) ElementType

func (VolumeV2Array) ElementType() reflect.Type

func (VolumeV2Array) ToVolumeV2ArrayOutput

func (i VolumeV2Array) ToVolumeV2ArrayOutput() VolumeV2ArrayOutput

func (VolumeV2Array) ToVolumeV2ArrayOutputWithContext

func (i VolumeV2Array) ToVolumeV2ArrayOutputWithContext(ctx context.Context) VolumeV2ArrayOutput

type VolumeV2ArrayInput

type VolumeV2ArrayInput interface {
	pulumi.Input

	ToVolumeV2ArrayOutput() VolumeV2ArrayOutput
	ToVolumeV2ArrayOutputWithContext(context.Context) VolumeV2ArrayOutput
}

VolumeV2ArrayInput is an input type that accepts VolumeV2Array and VolumeV2ArrayOutput values. You can construct a concrete instance of `VolumeV2ArrayInput` via:

VolumeV2Array{ VolumeV2Args{...} }

type VolumeV2ArrayOutput

type VolumeV2ArrayOutput struct{ *pulumi.OutputState }

func (VolumeV2ArrayOutput) ElementType

func (VolumeV2ArrayOutput) ElementType() reflect.Type

func (VolumeV2ArrayOutput) Index

func (VolumeV2ArrayOutput) ToVolumeV2ArrayOutput

func (o VolumeV2ArrayOutput) ToVolumeV2ArrayOutput() VolumeV2ArrayOutput

func (VolumeV2ArrayOutput) ToVolumeV2ArrayOutputWithContext

func (o VolumeV2ArrayOutput) ToVolumeV2ArrayOutputWithContext(ctx context.Context) VolumeV2ArrayOutput

type VolumeV2Attachment

type VolumeV2Attachment struct {
	Device     *string `pulumi:"device"`
	Id         *string `pulumi:"id"`
	InstanceId *string `pulumi:"instanceId"`
}

type VolumeV2AttachmentArgs

type VolumeV2AttachmentArgs struct {
	Device     pulumi.StringPtrInput `pulumi:"device"`
	Id         pulumi.StringPtrInput `pulumi:"id"`
	InstanceId pulumi.StringPtrInput `pulumi:"instanceId"`
}

func (VolumeV2AttachmentArgs) ElementType

func (VolumeV2AttachmentArgs) ElementType() reflect.Type

func (VolumeV2AttachmentArgs) ToVolumeV2AttachmentOutput

func (i VolumeV2AttachmentArgs) ToVolumeV2AttachmentOutput() VolumeV2AttachmentOutput

func (VolumeV2AttachmentArgs) ToVolumeV2AttachmentOutputWithContext

func (i VolumeV2AttachmentArgs) ToVolumeV2AttachmentOutputWithContext(ctx context.Context) VolumeV2AttachmentOutput

type VolumeV2AttachmentArray

type VolumeV2AttachmentArray []VolumeV2AttachmentInput

func (VolumeV2AttachmentArray) ElementType

func (VolumeV2AttachmentArray) ElementType() reflect.Type

func (VolumeV2AttachmentArray) ToVolumeV2AttachmentArrayOutput

func (i VolumeV2AttachmentArray) ToVolumeV2AttachmentArrayOutput() VolumeV2AttachmentArrayOutput

func (VolumeV2AttachmentArray) ToVolumeV2AttachmentArrayOutputWithContext

func (i VolumeV2AttachmentArray) ToVolumeV2AttachmentArrayOutputWithContext(ctx context.Context) VolumeV2AttachmentArrayOutput

type VolumeV2AttachmentArrayInput

type VolumeV2AttachmentArrayInput interface {
	pulumi.Input

	ToVolumeV2AttachmentArrayOutput() VolumeV2AttachmentArrayOutput
	ToVolumeV2AttachmentArrayOutputWithContext(context.Context) VolumeV2AttachmentArrayOutput
}

VolumeV2AttachmentArrayInput is an input type that accepts VolumeV2AttachmentArray and VolumeV2AttachmentArrayOutput values. You can construct a concrete instance of `VolumeV2AttachmentArrayInput` via:

VolumeV2AttachmentArray{ VolumeV2AttachmentArgs{...} }

type VolumeV2AttachmentArrayOutput

type VolumeV2AttachmentArrayOutput struct{ *pulumi.OutputState }

func (VolumeV2AttachmentArrayOutput) ElementType

func (VolumeV2AttachmentArrayOutput) Index

func (VolumeV2AttachmentArrayOutput) ToVolumeV2AttachmentArrayOutput

func (o VolumeV2AttachmentArrayOutput) ToVolumeV2AttachmentArrayOutput() VolumeV2AttachmentArrayOutput

func (VolumeV2AttachmentArrayOutput) ToVolumeV2AttachmentArrayOutputWithContext

func (o VolumeV2AttachmentArrayOutput) ToVolumeV2AttachmentArrayOutputWithContext(ctx context.Context) VolumeV2AttachmentArrayOutput

type VolumeV2AttachmentInput

type VolumeV2AttachmentInput interface {
	pulumi.Input

	ToVolumeV2AttachmentOutput() VolumeV2AttachmentOutput
	ToVolumeV2AttachmentOutputWithContext(context.Context) VolumeV2AttachmentOutput
}

VolumeV2AttachmentInput is an input type that accepts VolumeV2AttachmentArgs and VolumeV2AttachmentOutput values. You can construct a concrete instance of `VolumeV2AttachmentInput` via:

VolumeV2AttachmentArgs{...}

type VolumeV2AttachmentOutput

type VolumeV2AttachmentOutput struct{ *pulumi.OutputState }

func (VolumeV2AttachmentOutput) Device

func (VolumeV2AttachmentOutput) ElementType

func (VolumeV2AttachmentOutput) ElementType() reflect.Type

func (VolumeV2AttachmentOutput) Id

func (VolumeV2AttachmentOutput) InstanceId

func (VolumeV2AttachmentOutput) ToVolumeV2AttachmentOutput

func (o VolumeV2AttachmentOutput) ToVolumeV2AttachmentOutput() VolumeV2AttachmentOutput

func (VolumeV2AttachmentOutput) ToVolumeV2AttachmentOutputWithContext

func (o VolumeV2AttachmentOutput) ToVolumeV2AttachmentOutputWithContext(ctx context.Context) VolumeV2AttachmentOutput

type VolumeV2Input

type VolumeV2Input interface {
	pulumi.Input

	ToVolumeV2Output() VolumeV2Output
	ToVolumeV2OutputWithContext(ctx context.Context) VolumeV2Output
}

type VolumeV2Map

type VolumeV2Map map[string]VolumeV2Input

func (VolumeV2Map) ElementType

func (VolumeV2Map) ElementType() reflect.Type

func (VolumeV2Map) ToVolumeV2MapOutput

func (i VolumeV2Map) ToVolumeV2MapOutput() VolumeV2MapOutput

func (VolumeV2Map) ToVolumeV2MapOutputWithContext

func (i VolumeV2Map) ToVolumeV2MapOutputWithContext(ctx context.Context) VolumeV2MapOutput

type VolumeV2MapInput

type VolumeV2MapInput interface {
	pulumi.Input

	ToVolumeV2MapOutput() VolumeV2MapOutput
	ToVolumeV2MapOutputWithContext(context.Context) VolumeV2MapOutput
}

VolumeV2MapInput is an input type that accepts VolumeV2Map and VolumeV2MapOutput values. You can construct a concrete instance of `VolumeV2MapInput` via:

VolumeV2Map{ "key": VolumeV2Args{...} }

type VolumeV2MapOutput

type VolumeV2MapOutput struct{ *pulumi.OutputState }

func (VolumeV2MapOutput) ElementType

func (VolumeV2MapOutput) ElementType() reflect.Type

func (VolumeV2MapOutput) MapIndex

func (VolumeV2MapOutput) ToVolumeV2MapOutput

func (o VolumeV2MapOutput) ToVolumeV2MapOutput() VolumeV2MapOutput

func (VolumeV2MapOutput) ToVolumeV2MapOutputWithContext

func (o VolumeV2MapOutput) ToVolumeV2MapOutputWithContext(ctx context.Context) VolumeV2MapOutput

type VolumeV2Output

type VolumeV2Output struct{ *pulumi.OutputState }

func (VolumeV2Output) Attachments

If a volume is attached to an instance, this attribute will display the Attachment ID, Instance ID, and the Device as the Instance sees it.

func (VolumeV2Output) AvailabilityZone

func (o VolumeV2Output) AvailabilityZone() pulumi.StringOutput

The availability zone for the volume. Changing this creates a new volume.

func (VolumeV2Output) ConsistencyGroupId

func (o VolumeV2Output) ConsistencyGroupId() pulumi.StringPtrOutput

The consistency group to place the volume in.

func (VolumeV2Output) Description

func (o VolumeV2Output) Description() pulumi.StringPtrOutput

A description of the volume. Changing this updates the volume's description.

func (VolumeV2Output) ElementType

func (VolumeV2Output) ElementType() reflect.Type

func (VolumeV2Output) ImageId

The image ID from which to create the volume. Changing this creates a new volume.

func (VolumeV2Output) Metadata

func (o VolumeV2Output) Metadata() pulumi.StringMapOutput

Metadata key/value pairs to associate with the volume. Changing this updates the existing volume metadata.

func (VolumeV2Output) Name

A unique name for the volume. Changing this updates the volume's name.

func (VolumeV2Output) Region

func (o VolumeV2Output) Region() pulumi.StringOutput

The region in which to create the volume. If omitted, the `region` argument of the provider is used. Changing this creates a new volume.

func (VolumeV2Output) SchedulerHints

Provide the Cinder scheduler with hints on where to instantiate a volume in the OpenStack cloud. The available hints are described below.

func (VolumeV2Output) Size

func (o VolumeV2Output) Size() pulumi.IntOutput

The size of the volume to create (in gigabytes). Changing this creates a new volume.

func (VolumeV2Output) SnapshotId

func (o VolumeV2Output) SnapshotId() pulumi.StringPtrOutput

The snapshot ID from which to create the volume. Changing this creates a new volume.

func (VolumeV2Output) SourceReplica

func (o VolumeV2Output) SourceReplica() pulumi.StringPtrOutput

The volume ID to replicate with.

func (VolumeV2Output) SourceVolId

func (o VolumeV2Output) SourceVolId() pulumi.StringPtrOutput

The volume ID from which to create the volume. Changing this creates a new volume.

func (VolumeV2Output) ToVolumeV2Output

func (o VolumeV2Output) ToVolumeV2Output() VolumeV2Output

func (VolumeV2Output) ToVolumeV2OutputWithContext

func (o VolumeV2Output) ToVolumeV2OutputWithContext(ctx context.Context) VolumeV2Output

func (VolumeV2Output) VolumeType

func (o VolumeV2Output) VolumeType() pulumi.StringOutput

The type of volume to create. Changing this creates a new volume.

type VolumeV2SchedulerHint

type VolumeV2SchedulerHint struct {
	// Arbitrary key/value pairs of additional
	// properties to pass to the scheduler.
	AdditionalProperties map[string]string `pulumi:"additionalProperties"`
	// The volume should be scheduled on a
	// different host from the set of volumes specified in the list provided.
	DifferentHosts []string `pulumi:"differentHosts"`
	// An instance UUID. The volume should be
	// scheduled on the same host as the instance.
	LocalToInstance *string `pulumi:"localToInstance"`
	// A conditional query that a back-end must pass in
	// order to host a volume. The query must use the `JsonFilter` syntax
	// which is described
	// [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter).
	// At this time, only simple queries are supported. Compound queries using
	// `and`, `or`, or `not` are not supported. An example of a simple query is:
	Query *string `pulumi:"query"`
	// A list of volume UUIDs. The volume should be
	// scheduled on the same host as another volume specified in the list provided.
	SameHosts []string `pulumi:"sameHosts"`
}

type VolumeV2SchedulerHintArgs

type VolumeV2SchedulerHintArgs struct {
	// Arbitrary key/value pairs of additional
	// properties to pass to the scheduler.
	AdditionalProperties pulumi.StringMapInput `pulumi:"additionalProperties"`
	// The volume should be scheduled on a
	// different host from the set of volumes specified in the list provided.
	DifferentHosts pulumi.StringArrayInput `pulumi:"differentHosts"`
	// An instance UUID. The volume should be
	// scheduled on the same host as the instance.
	LocalToInstance pulumi.StringPtrInput `pulumi:"localToInstance"`
	// A conditional query that a back-end must pass in
	// order to host a volume. The query must use the `JsonFilter` syntax
	// which is described
	// [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter).
	// At this time, only simple queries are supported. Compound queries using
	// `and`, `or`, or `not` are not supported. An example of a simple query is:
	Query pulumi.StringPtrInput `pulumi:"query"`
	// A list of volume UUIDs. The volume should be
	// scheduled on the same host as another volume specified in the list provided.
	SameHosts pulumi.StringArrayInput `pulumi:"sameHosts"`
}

func (VolumeV2SchedulerHintArgs) ElementType

func (VolumeV2SchedulerHintArgs) ElementType() reflect.Type

func (VolumeV2SchedulerHintArgs) ToVolumeV2SchedulerHintOutput

func (i VolumeV2SchedulerHintArgs) ToVolumeV2SchedulerHintOutput() VolumeV2SchedulerHintOutput

func (VolumeV2SchedulerHintArgs) ToVolumeV2SchedulerHintOutputWithContext

func (i VolumeV2SchedulerHintArgs) ToVolumeV2SchedulerHintOutputWithContext(ctx context.Context) VolumeV2SchedulerHintOutput

type VolumeV2SchedulerHintArray

type VolumeV2SchedulerHintArray []VolumeV2SchedulerHintInput

func (VolumeV2SchedulerHintArray) ElementType

func (VolumeV2SchedulerHintArray) ElementType() reflect.Type

func (VolumeV2SchedulerHintArray) ToVolumeV2SchedulerHintArrayOutput

func (i VolumeV2SchedulerHintArray) ToVolumeV2SchedulerHintArrayOutput() VolumeV2SchedulerHintArrayOutput

func (VolumeV2SchedulerHintArray) ToVolumeV2SchedulerHintArrayOutputWithContext

func (i VolumeV2SchedulerHintArray) ToVolumeV2SchedulerHintArrayOutputWithContext(ctx context.Context) VolumeV2SchedulerHintArrayOutput

type VolumeV2SchedulerHintArrayInput

type VolumeV2SchedulerHintArrayInput interface {
	pulumi.Input

	ToVolumeV2SchedulerHintArrayOutput() VolumeV2SchedulerHintArrayOutput
	ToVolumeV2SchedulerHintArrayOutputWithContext(context.Context) VolumeV2SchedulerHintArrayOutput
}

VolumeV2SchedulerHintArrayInput is an input type that accepts VolumeV2SchedulerHintArray and VolumeV2SchedulerHintArrayOutput values. You can construct a concrete instance of `VolumeV2SchedulerHintArrayInput` via:

VolumeV2SchedulerHintArray{ VolumeV2SchedulerHintArgs{...} }

type VolumeV2SchedulerHintArrayOutput

type VolumeV2SchedulerHintArrayOutput struct{ *pulumi.OutputState }

func (VolumeV2SchedulerHintArrayOutput) ElementType

func (VolumeV2SchedulerHintArrayOutput) Index

func (VolumeV2SchedulerHintArrayOutput) ToVolumeV2SchedulerHintArrayOutput

func (o VolumeV2SchedulerHintArrayOutput) ToVolumeV2SchedulerHintArrayOutput() VolumeV2SchedulerHintArrayOutput

func (VolumeV2SchedulerHintArrayOutput) ToVolumeV2SchedulerHintArrayOutputWithContext

func (o VolumeV2SchedulerHintArrayOutput) ToVolumeV2SchedulerHintArrayOutputWithContext(ctx context.Context) VolumeV2SchedulerHintArrayOutput

type VolumeV2SchedulerHintInput

type VolumeV2SchedulerHintInput interface {
	pulumi.Input

	ToVolumeV2SchedulerHintOutput() VolumeV2SchedulerHintOutput
	ToVolumeV2SchedulerHintOutputWithContext(context.Context) VolumeV2SchedulerHintOutput
}

VolumeV2SchedulerHintInput is an input type that accepts VolumeV2SchedulerHintArgs and VolumeV2SchedulerHintOutput values. You can construct a concrete instance of `VolumeV2SchedulerHintInput` via:

VolumeV2SchedulerHintArgs{...}

type VolumeV2SchedulerHintOutput

type VolumeV2SchedulerHintOutput struct{ *pulumi.OutputState }

func (VolumeV2SchedulerHintOutput) AdditionalProperties

func (o VolumeV2SchedulerHintOutput) AdditionalProperties() pulumi.StringMapOutput

Arbitrary key/value pairs of additional properties to pass to the scheduler.

func (VolumeV2SchedulerHintOutput) DifferentHosts

The volume should be scheduled on a different host from the set of volumes specified in the list provided.

func (VolumeV2SchedulerHintOutput) ElementType

func (VolumeV2SchedulerHintOutput) LocalToInstance

An instance UUID. The volume should be scheduled on the same host as the instance.

func (VolumeV2SchedulerHintOutput) Query

A conditional query that a back-end must pass in order to host a volume. The query must use the `JsonFilter` syntax which is described [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter). At this time, only simple queries are supported. Compound queries using `and`, `or`, or `not` are not supported. An example of a simple query is:

func (VolumeV2SchedulerHintOutput) SameHosts

A list of volume UUIDs. The volume should be scheduled on the same host as another volume specified in the list provided.

func (VolumeV2SchedulerHintOutput) ToVolumeV2SchedulerHintOutput

func (o VolumeV2SchedulerHintOutput) ToVolumeV2SchedulerHintOutput() VolumeV2SchedulerHintOutput

func (VolumeV2SchedulerHintOutput) ToVolumeV2SchedulerHintOutputWithContext

func (o VolumeV2SchedulerHintOutput) ToVolumeV2SchedulerHintOutputWithContext(ctx context.Context) VolumeV2SchedulerHintOutput

type VolumeV2State

type VolumeV2State struct {
	// If a volume is attached to an instance, this attribute will
	// display the Attachment ID, Instance ID, and the Device as the Instance
	// sees it.
	Attachments VolumeV2AttachmentArrayInput
	// The availability zone for the volume.
	// Changing this creates a new volume.
	AvailabilityZone pulumi.StringPtrInput
	// The consistency group to place the volume
	// in.
	ConsistencyGroupId pulumi.StringPtrInput
	// A description of the volume. Changing this updates
	// the volume's description.
	Description pulumi.StringPtrInput
	// The image ID from which to create the volume.
	// Changing this creates a new volume.
	ImageId pulumi.StringPtrInput
	// Metadata key/value pairs to associate with the volume.
	// Changing this updates the existing volume metadata.
	Metadata pulumi.StringMapInput
	// A unique name for the volume. Changing this updates the
	// volume's name.
	Name pulumi.StringPtrInput
	// The region in which to create the volume. If
	// omitted, the `region` argument of the provider is used. Changing this
	// creates a new volume.
	Region pulumi.StringPtrInput
	// Provide the Cinder scheduler with hints on where
	// to instantiate a volume in the OpenStack cloud. The available hints are described below.
	SchedulerHints VolumeV2SchedulerHintArrayInput
	// The size of the volume to create (in gigabytes). Changing
	// this creates a new volume.
	Size pulumi.IntPtrInput
	// The snapshot ID from which to create the volume.
	// Changing this creates a new volume.
	SnapshotId pulumi.StringPtrInput
	// The volume ID to replicate with.
	SourceReplica pulumi.StringPtrInput
	// The volume ID from which to create the volume.
	// Changing this creates a new volume.
	SourceVolId pulumi.StringPtrInput
	// The type of volume to create.
	// Changing this creates a new volume.
	VolumeType pulumi.StringPtrInput
}

func (VolumeV2State) ElementType

func (VolumeV2State) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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