identity

package
v2.8.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApplicationCredential

type ApplicationCredential struct {
	pulumi.CustomResourceState

	// A collection of one or more access rules, which
	// this application credential allows to follow. The structure is described
	// below. Changing this creates a new application credential.
	AccessRules ApplicationCredentialAccessRuleArrayOutput `pulumi:"accessRules"`
	// A description of the application credential.
	// Changing this creates a new application credential.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The expiration time of the application credential
	// in the RFC3339 timestamp format (e.g. `2019-03-09T12:58:49Z`). If omitted,
	// an application credential will never expire. Changing this creates a new
	// application credential.
	ExpiresAt pulumi.StringPtrOutput `pulumi:"expiresAt"`
	// A name of the application credential. Changing this
	// creates a new application credential.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project the application credential was created
	// for and that authentication requests using this application credential will
	// be scoped to.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new application credential.
	Region pulumi.StringOutput `pulumi:"region"`
	// A collection of one or more role names, which this
	// application credential has to be associated with its project. If omitted,
	// all the current user's roles within the scoped project will be inherited by
	// a new application credential. Changing this creates a new application
	// credential.
	Roles pulumi.StringArrayOutput `pulumi:"roles"`
	// The secret for the application credential. If omitted,
	// it will be generated by the server. Changing this creates a new application
	// credential.
	Secret pulumi.StringOutput `pulumi:"secret"`
	// A flag indicating whether the application
	// credential may be used for creation or destruction of other application
	// credentials or trusts. Changing this creates a new application credential.
	Unrestricted pulumi.BoolPtrOutput `pulumi:"unrestricted"`
}

Manages a V3 Application Credential resource within OpenStack Keystone.

> **Note:** All arguments including the application credential name and secret will be stored in the raw state as plain-text. [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).

> **Note:** An Application Credential is created within the authenticated user project scope and is not visible by an admin or other accounts. The Application Credential visibility is similar to `compute.Keypair`.

## Example Usage ### Predefined secret

Application credential below will have only one `swiftoperator` role.

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewApplicationCredential(ctx, "swift", &identity.ApplicationCredentialArgs{
			Description: pulumi.String("Swift technical application credential"),
			ExpiresAt:   pulumi.String("2019-02-13T12:12:12Z"),
			Roles: pulumi.StringArray{
				pulumi.String("swiftoperator"),
			},
			Secret: pulumi.String("supersecret"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Unrestricted with autogenerated secret and unlimited TTL

Application credential below will inherit all the current user's roles.

!> **WARNING:** Restrictions on these Identity operations are deliberately imposed as a safeguard to prevent a compromised application credential from regenerating itself. Disabling this restriction poses an inherent added risk.

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		unrestricted, err := identity.NewApplicationCredential(ctx, "unrestricted", &identity.ApplicationCredentialArgs{
			Description:  pulumi.String("Unrestricted application credential"),
			Unrestricted: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		ctx.Export("applicationCredentialSecret", unrestricted.Secret)
		return nil
	})
}

``` ### Application credential with access rules

> **Note:** Application Credential access rules are supported only in Keystone starting from [Train](https://releases.openstack.org/train/highlights.html#keystone-identity-service) release.

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewApplicationCredential(ctx, "monitoring", &identity.ApplicationCredentialArgs{
			AccessRules: identity.ApplicationCredentialAccessRuleArray{
				&identity.ApplicationCredentialAccessRuleArgs{
					Method:  pulumi.String("GET"),
					Path:    pulumi.String("/v2.0/metrics"),
					Service: pulumi.String("monitoring"),
				},
				&identity.ApplicationCredentialAccessRuleArgs{
					Method:  pulumi.String("PUT"),
					Path:    pulumi.String("/v2.0/metrics"),
					Service: pulumi.String("monitoring"),
				},
			},
			ExpiresAt: pulumi.String("2019-02-13T12:12:12Z"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetApplicationCredential

func GetApplicationCredential(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApplicationCredentialState, opts ...pulumi.ResourceOption) (*ApplicationCredential, error)

GetApplicationCredential gets an existing ApplicationCredential 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 NewApplicationCredential

func NewApplicationCredential(ctx *pulumi.Context,
	name string, args *ApplicationCredentialArgs, opts ...pulumi.ResourceOption) (*ApplicationCredential, error)

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

type ApplicationCredentialAccessRule

type ApplicationCredentialAccessRule struct {
	// The ID of the existing access rule. The access rule ID of
	// another application credential can be provided.
	Id *string `pulumi:"id"`
	// The request method that the application credential is
	// permitted to use for a given API endpoint. Allowed values: `POST`, `GET`,
	// `HEAD`, `PATCH`, `PUT` and `DELETE`.
	Method string `pulumi:"method"`
	// The API path that the application credential is permitted
	// to access. May use named wildcards such as **{tag}** or the unnamed wildcard
	// **\*** to match against any string in the path up to a **/**, or the recursive
	// wildcard **\*\*** to include **/** in the matched path.
	Path string `pulumi:"path"`
	// The service type identifier for the service that the
	// application credential is granted to access. Must be a service type that is
	// listed in the service catalog and not a code name for a service. E.g.
	// **identity**, **compute**, **volumev3**, **image**, **network**,
	// **object-store**, **sharev2**, **dns**, **key-manager**, **monitoring**, etc.
	Service string `pulumi:"service"`
}

type ApplicationCredentialAccessRuleArgs

type ApplicationCredentialAccessRuleArgs struct {
	// The ID of the existing access rule. The access rule ID of
	// another application credential can be provided.
	Id pulumi.StringPtrInput `pulumi:"id"`
	// The request method that the application credential is
	// permitted to use for a given API endpoint. Allowed values: `POST`, `GET`,
	// `HEAD`, `PATCH`, `PUT` and `DELETE`.
	Method pulumi.StringInput `pulumi:"method"`
	// The API path that the application credential is permitted
	// to access. May use named wildcards such as **{tag}** or the unnamed wildcard
	// **\*** to match against any string in the path up to a **/**, or the recursive
	// wildcard **\*\*** to include **/** in the matched path.
	Path pulumi.StringInput `pulumi:"path"`
	// The service type identifier for the service that the
	// application credential is granted to access. Must be a service type that is
	// listed in the service catalog and not a code name for a service. E.g.
	// **identity**, **compute**, **volumev3**, **image**, **network**,
	// **object-store**, **sharev2**, **dns**, **key-manager**, **monitoring**, etc.
	Service pulumi.StringInput `pulumi:"service"`
}

func (ApplicationCredentialAccessRuleArgs) ElementType

func (ApplicationCredentialAccessRuleArgs) ToApplicationCredentialAccessRuleOutput

func (i ApplicationCredentialAccessRuleArgs) ToApplicationCredentialAccessRuleOutput() ApplicationCredentialAccessRuleOutput

func (ApplicationCredentialAccessRuleArgs) ToApplicationCredentialAccessRuleOutputWithContext

func (i ApplicationCredentialAccessRuleArgs) ToApplicationCredentialAccessRuleOutputWithContext(ctx context.Context) ApplicationCredentialAccessRuleOutput

type ApplicationCredentialAccessRuleArray

type ApplicationCredentialAccessRuleArray []ApplicationCredentialAccessRuleInput

func (ApplicationCredentialAccessRuleArray) ElementType

func (ApplicationCredentialAccessRuleArray) ToApplicationCredentialAccessRuleArrayOutput

func (i ApplicationCredentialAccessRuleArray) ToApplicationCredentialAccessRuleArrayOutput() ApplicationCredentialAccessRuleArrayOutput

func (ApplicationCredentialAccessRuleArray) ToApplicationCredentialAccessRuleArrayOutputWithContext

func (i ApplicationCredentialAccessRuleArray) ToApplicationCredentialAccessRuleArrayOutputWithContext(ctx context.Context) ApplicationCredentialAccessRuleArrayOutput

type ApplicationCredentialAccessRuleArrayInput

type ApplicationCredentialAccessRuleArrayInput interface {
	pulumi.Input

	ToApplicationCredentialAccessRuleArrayOutput() ApplicationCredentialAccessRuleArrayOutput
	ToApplicationCredentialAccessRuleArrayOutputWithContext(context.Context) ApplicationCredentialAccessRuleArrayOutput
}

ApplicationCredentialAccessRuleArrayInput is an input type that accepts ApplicationCredentialAccessRuleArray and ApplicationCredentialAccessRuleArrayOutput values. You can construct a concrete instance of `ApplicationCredentialAccessRuleArrayInput` via:

ApplicationCredentialAccessRuleArray{ ApplicationCredentialAccessRuleArgs{...} }

type ApplicationCredentialAccessRuleArrayOutput

type ApplicationCredentialAccessRuleArrayOutput struct{ *pulumi.OutputState }

func (ApplicationCredentialAccessRuleArrayOutput) ElementType

func (ApplicationCredentialAccessRuleArrayOutput) Index

func (ApplicationCredentialAccessRuleArrayOutput) ToApplicationCredentialAccessRuleArrayOutput

func (o ApplicationCredentialAccessRuleArrayOutput) ToApplicationCredentialAccessRuleArrayOutput() ApplicationCredentialAccessRuleArrayOutput

func (ApplicationCredentialAccessRuleArrayOutput) ToApplicationCredentialAccessRuleArrayOutputWithContext

func (o ApplicationCredentialAccessRuleArrayOutput) ToApplicationCredentialAccessRuleArrayOutputWithContext(ctx context.Context) ApplicationCredentialAccessRuleArrayOutput

type ApplicationCredentialAccessRuleInput

type ApplicationCredentialAccessRuleInput interface {
	pulumi.Input

	ToApplicationCredentialAccessRuleOutput() ApplicationCredentialAccessRuleOutput
	ToApplicationCredentialAccessRuleOutputWithContext(context.Context) ApplicationCredentialAccessRuleOutput
}

ApplicationCredentialAccessRuleInput is an input type that accepts ApplicationCredentialAccessRuleArgs and ApplicationCredentialAccessRuleOutput values. You can construct a concrete instance of `ApplicationCredentialAccessRuleInput` via:

ApplicationCredentialAccessRuleArgs{...}

type ApplicationCredentialAccessRuleOutput

type ApplicationCredentialAccessRuleOutput struct{ *pulumi.OutputState }

func (ApplicationCredentialAccessRuleOutput) ElementType

func (ApplicationCredentialAccessRuleOutput) Id

The ID of the existing access rule. The access rule ID of another application credential can be provided.

func (ApplicationCredentialAccessRuleOutput) Method

The request method that the application credential is permitted to use for a given API endpoint. Allowed values: `POST`, `GET`, `HEAD`, `PATCH`, `PUT` and `DELETE`.

func (ApplicationCredentialAccessRuleOutput) Path

The API path that the application credential is permitted to access. May use named wildcards such as **{tag}** or the unnamed wildcard **\*** to match against any string in the path up to a **/**, or the recursive wildcard **\*\*** to include **/** in the matched path.

func (ApplicationCredentialAccessRuleOutput) Service

The service type identifier for the service that the application credential is granted to access. Must be a service type that is listed in the service catalog and not a code name for a service. E.g. **identity**, **compute**, **volumev3**, **image**, **network**, **object-store**, **sharev2**, **dns**, **key-manager**, **monitoring**, etc.

func (ApplicationCredentialAccessRuleOutput) ToApplicationCredentialAccessRuleOutput

func (o ApplicationCredentialAccessRuleOutput) ToApplicationCredentialAccessRuleOutput() ApplicationCredentialAccessRuleOutput

func (ApplicationCredentialAccessRuleOutput) ToApplicationCredentialAccessRuleOutputWithContext

func (o ApplicationCredentialAccessRuleOutput) ToApplicationCredentialAccessRuleOutputWithContext(ctx context.Context) ApplicationCredentialAccessRuleOutput

type ApplicationCredentialArgs

type ApplicationCredentialArgs struct {
	// A collection of one or more access rules, which
	// this application credential allows to follow. The structure is described
	// below. Changing this creates a new application credential.
	AccessRules ApplicationCredentialAccessRuleArrayInput
	// A description of the application credential.
	// Changing this creates a new application credential.
	Description pulumi.StringPtrInput
	// The expiration time of the application credential
	// in the RFC3339 timestamp format (e.g. `2019-03-09T12:58:49Z`). If omitted,
	// an application credential will never expire. Changing this creates a new
	// application credential.
	ExpiresAt pulumi.StringPtrInput
	// A name of the application credential. Changing this
	// creates a new application credential.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new application credential.
	Region pulumi.StringPtrInput
	// A collection of one or more role names, which this
	// application credential has to be associated with its project. If omitted,
	// all the current user's roles within the scoped project will be inherited by
	// a new application credential. Changing this creates a new application
	// credential.
	Roles pulumi.StringArrayInput
	// The secret for the application credential. If omitted,
	// it will be generated by the server. Changing this creates a new application
	// credential.
	Secret pulumi.StringPtrInput
	// A flag indicating whether the application
	// credential may be used for creation or destruction of other application
	// credentials or trusts. Changing this creates a new application credential.
	Unrestricted pulumi.BoolPtrInput
}

The set of arguments for constructing a ApplicationCredential resource.

func (ApplicationCredentialArgs) ElementType

func (ApplicationCredentialArgs) ElementType() reflect.Type

type ApplicationCredentialState

type ApplicationCredentialState struct {
	// A collection of one or more access rules, which
	// this application credential allows to follow. The structure is described
	// below. Changing this creates a new application credential.
	AccessRules ApplicationCredentialAccessRuleArrayInput
	// A description of the application credential.
	// Changing this creates a new application credential.
	Description pulumi.StringPtrInput
	// The expiration time of the application credential
	// in the RFC3339 timestamp format (e.g. `2019-03-09T12:58:49Z`). If omitted,
	// an application credential will never expire. Changing this creates a new
	// application credential.
	ExpiresAt pulumi.StringPtrInput
	// A name of the application credential. Changing this
	// creates a new application credential.
	Name pulumi.StringPtrInput
	// The ID of the project the application credential was created
	// for and that authentication requests using this application credential will
	// be scoped to.
	ProjectId pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new application credential.
	Region pulumi.StringPtrInput
	// A collection of one or more role names, which this
	// application credential has to be associated with its project. If omitted,
	// all the current user's roles within the scoped project will be inherited by
	// a new application credential. Changing this creates a new application
	// credential.
	Roles pulumi.StringArrayInput
	// The secret for the application credential. If omitted,
	// it will be generated by the server. Changing this creates a new application
	// credential.
	Secret pulumi.StringPtrInput
	// A flag indicating whether the application
	// credential may be used for creation or destruction of other application
	// credentials or trusts. Changing this creates a new application credential.
	Unrestricted pulumi.BoolPtrInput
}

func (ApplicationCredentialState) ElementType

func (ApplicationCredentialState) ElementType() reflect.Type

type Ec2CredentialV3 added in v2.6.0

type Ec2CredentialV3 struct {
	pulumi.CustomResourceState

	// contains an EC2 credential access UUID
	Access pulumi.StringOutput `pulumi:"access"`
	// The ID of the project the EC2 credential is created
	// for and that authentication requests using this EC2 credential will
	// be scoped to.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new EC2 credential.
	Region pulumi.StringOutput `pulumi:"region"`
	// contains an EC2 credential secret UUID
	Secret pulumi.StringOutput `pulumi:"secret"`
	// contains an EC2 credential trust ID scope
	TrustId pulumi.StringOutput `pulumi:"trustId"`
	// The ID of the user the EC2 credential is created for.
	UserId pulumi.StringOutput `pulumi:"userId"`
}

Manages a V3 EC2 Credential resource within OpenStack Keystone. EC2 credentials in OpenStack are used to access S3 compatible Swift/RadosGW endpoints or to authenticate against Keystone.

> **Note:** All arguments including the EC2 credential access key and secret will be stored in the raw state as plain-text. [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).

## Example Usage ### EC2 credential in current project scope

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewEc2CredentialV3(ctx, "ec2Key1", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### EC2 credential in pre-defined project scope

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewEc2CredentialV3(ctx, "ec2Key1", &identity.Ec2CredentialV3Args{
			ProjectId: pulumi.String("f7ac731cc11f40efbc03a9f9e1d1d21f"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetEc2CredentialV3 added in v2.6.0

func GetEc2CredentialV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *Ec2CredentialV3State, opts ...pulumi.ResourceOption) (*Ec2CredentialV3, error)

GetEc2CredentialV3 gets an existing Ec2CredentialV3 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 NewEc2CredentialV3 added in v2.6.0

func NewEc2CredentialV3(ctx *pulumi.Context,
	name string, args *Ec2CredentialV3Args, opts ...pulumi.ResourceOption) (*Ec2CredentialV3, error)

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

type Ec2CredentialV3Args added in v2.6.0

type Ec2CredentialV3Args struct {
	// The ID of the project the EC2 credential is created
	// for and that authentication requests using this EC2 credential will
	// be scoped to.
	ProjectId pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new EC2 credential.
	Region pulumi.StringPtrInput
	// The ID of the user the EC2 credential is created for.
	UserId pulumi.StringPtrInput
}

The set of arguments for constructing a Ec2CredentialV3 resource.

func (Ec2CredentialV3Args) ElementType added in v2.6.0

func (Ec2CredentialV3Args) ElementType() reflect.Type

type Ec2CredentialV3State added in v2.6.0

type Ec2CredentialV3State struct {
	// contains an EC2 credential access UUID
	Access pulumi.StringPtrInput
	// The ID of the project the EC2 credential is created
	// for and that authentication requests using this EC2 credential will
	// be scoped to.
	ProjectId pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new EC2 credential.
	Region pulumi.StringPtrInput
	// contains an EC2 credential secret UUID
	Secret pulumi.StringPtrInput
	// contains an EC2 credential trust ID scope
	TrustId pulumi.StringPtrInput
	// The ID of the user the EC2 credential is created for.
	UserId pulumi.StringPtrInput
}

func (Ec2CredentialV3State) ElementType added in v2.6.0

func (Ec2CredentialV3State) ElementType() reflect.Type

type EndpointV3

type EndpointV3 struct {
	pulumi.CustomResourceState

	// The endpoint region. The `region` and
	// `endpointRegion` can be different.
	EndpointRegion pulumi.StringOutput `pulumi:"endpointRegion"`
	// The endpoint interface. Valid values are `public`,
	// `internal` and `admin`. Default value is `public`
	Interface pulumi.StringPtrOutput `pulumi:"interface"`
	// The endpoint name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringOutput `pulumi:"region"`
	// The endpoint service ID.
	ServiceId pulumi.StringOutput `pulumi:"serviceId"`
	// The service name of the endpoint.
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
	// The service type of the endpoint.
	ServiceType pulumi.StringOutput `pulumi:"serviceType"`
	// The endpoint url.
	Url pulumi.StringOutput `pulumi:"url"`
}

Manages a V3 Endpoint resource within OpenStack Keystone.

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		service1, err := identity.NewServiceV3(ctx, "service1", &identity.ServiceV3Args{
			Type: pulumi.String("my-service-type"),
		})
		if err != nil {
			return err
		}
		_, err = identity.NewEndpointV3(ctx, "endpoint1", &identity.EndpointV3Args{
			EndpointRegion: service1.Region,
			ServiceId:      service1.ID(),
			Url:            pulumi.String("http://my-endpoint"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetEndpointV3

func GetEndpointV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EndpointV3State, opts ...pulumi.ResourceOption) (*EndpointV3, error)

GetEndpointV3 gets an existing EndpointV3 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 NewEndpointV3

func NewEndpointV3(ctx *pulumi.Context,
	name string, args *EndpointV3Args, opts ...pulumi.ResourceOption) (*EndpointV3, error)

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

type EndpointV3Args

type EndpointV3Args struct {
	// The endpoint region. The `region` and
	// `endpointRegion` can be different.
	EndpointRegion pulumi.StringInput
	// The endpoint interface. Valid values are `public`,
	// `internal` and `admin`. Default value is `public`
	Interface pulumi.StringPtrInput
	// The endpoint name.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput
	// The endpoint service ID.
	ServiceId pulumi.StringInput
	// The endpoint url.
	Url pulumi.StringInput
}

The set of arguments for constructing a EndpointV3 resource.

func (EndpointV3Args) ElementType

func (EndpointV3Args) ElementType() reflect.Type

type EndpointV3State

type EndpointV3State struct {
	// The endpoint region. The `region` and
	// `endpointRegion` can be different.
	EndpointRegion pulumi.StringPtrInput
	// The endpoint interface. Valid values are `public`,
	// `internal` and `admin`. Default value is `public`
	Interface pulumi.StringPtrInput
	// The endpoint name.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput
	// The endpoint service ID.
	ServiceId pulumi.StringPtrInput
	// The service name of the endpoint.
	ServiceName pulumi.StringPtrInput
	// The service type of the endpoint.
	ServiceType pulumi.StringPtrInput
	// The endpoint url.
	Url pulumi.StringPtrInput
}

func (EndpointV3State) ElementType

func (EndpointV3State) ElementType() reflect.Type

type GetAuthScopeArgs

type GetAuthScopeArgs struct {
	// The name of the scope. This is an arbitrary name which is
	// only used as a unique identifier so an actual token isn't used as the ID.
	Name string `pulumi:"name"`
	// The region in which to obtain the V3 Identity client.
	// A Identity client is needed to retrieve tokens IDs. If omitted, the
	// `region` argument of the provider is used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getAuthScope.

type GetAuthScopeResult

type GetAuthScopeResult struct {
	// The domain ID of the scope.
	DomainId string `pulumi:"domainId"`
	// The domain name of the scope.
	DomainName string `pulumi:"domainName"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
	// The domain ID of the project.
	ProjectDomainId string `pulumi:"projectDomainId"`
	// The domain name of the project.
	ProjectDomainName string `pulumi:"projectDomainName"`
	// The project ID of the scope.
	ProjectId string `pulumi:"projectId"`
	// The project name of the scope.
	ProjectName string `pulumi:"projectName"`
	Region      string `pulumi:"region"`
	// A list of roles in the current scope. See reference below.
	Roles []GetAuthScopeRole `pulumi:"roles"`
	// The domain ID of the user.
	UserDomainId string `pulumi:"userDomainId"`
	// The domain name of the user.
	UserDomainName string `pulumi:"userDomainName"`
	// The user ID the of the scope.
	UserId string `pulumi:"userId"`
	// The username of the scope.
	UserName string `pulumi:"userName"`
}

A collection of values returned by getAuthScope.

func GetAuthScope

func GetAuthScope(ctx *pulumi.Context, args *GetAuthScopeArgs, opts ...pulumi.InvokeOption) (*GetAuthScopeResult, error)

Use this data source to get authentication information about the current auth scope in use. This can be used as self-discovery or introspection of the username or project name currently in use.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.GetAuthScope(ctx, &identity.GetAuthScopeArgs{
			Name: "my_scope",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetAuthScopeRole

type GetAuthScopeRole struct {
	// The ID of the role.
	RoleId string `pulumi:"roleId"`
	// The name of the role.
	RoleName string `pulumi:"roleName"`
}

type GetAuthScopeRoleArgs

type GetAuthScopeRoleArgs struct {
	// The ID of the role.
	RoleId pulumi.StringInput `pulumi:"roleId"`
	// The name of the role.
	RoleName pulumi.StringInput `pulumi:"roleName"`
}

func (GetAuthScopeRoleArgs) ElementType

func (GetAuthScopeRoleArgs) ElementType() reflect.Type

func (GetAuthScopeRoleArgs) ToGetAuthScopeRoleOutput

func (i GetAuthScopeRoleArgs) ToGetAuthScopeRoleOutput() GetAuthScopeRoleOutput

func (GetAuthScopeRoleArgs) ToGetAuthScopeRoleOutputWithContext

func (i GetAuthScopeRoleArgs) ToGetAuthScopeRoleOutputWithContext(ctx context.Context) GetAuthScopeRoleOutput

type GetAuthScopeRoleArray

type GetAuthScopeRoleArray []GetAuthScopeRoleInput

func (GetAuthScopeRoleArray) ElementType

func (GetAuthScopeRoleArray) ElementType() reflect.Type

func (GetAuthScopeRoleArray) ToGetAuthScopeRoleArrayOutput

func (i GetAuthScopeRoleArray) ToGetAuthScopeRoleArrayOutput() GetAuthScopeRoleArrayOutput

func (GetAuthScopeRoleArray) ToGetAuthScopeRoleArrayOutputWithContext

func (i GetAuthScopeRoleArray) ToGetAuthScopeRoleArrayOutputWithContext(ctx context.Context) GetAuthScopeRoleArrayOutput

type GetAuthScopeRoleArrayInput

type GetAuthScopeRoleArrayInput interface {
	pulumi.Input

	ToGetAuthScopeRoleArrayOutput() GetAuthScopeRoleArrayOutput
	ToGetAuthScopeRoleArrayOutputWithContext(context.Context) GetAuthScopeRoleArrayOutput
}

GetAuthScopeRoleArrayInput is an input type that accepts GetAuthScopeRoleArray and GetAuthScopeRoleArrayOutput values. You can construct a concrete instance of `GetAuthScopeRoleArrayInput` via:

GetAuthScopeRoleArray{ GetAuthScopeRoleArgs{...} }

type GetAuthScopeRoleArrayOutput

type GetAuthScopeRoleArrayOutput struct{ *pulumi.OutputState }

func (GetAuthScopeRoleArrayOutput) ElementType

func (GetAuthScopeRoleArrayOutput) Index

func (GetAuthScopeRoleArrayOutput) ToGetAuthScopeRoleArrayOutput

func (o GetAuthScopeRoleArrayOutput) ToGetAuthScopeRoleArrayOutput() GetAuthScopeRoleArrayOutput

func (GetAuthScopeRoleArrayOutput) ToGetAuthScopeRoleArrayOutputWithContext

func (o GetAuthScopeRoleArrayOutput) ToGetAuthScopeRoleArrayOutputWithContext(ctx context.Context) GetAuthScopeRoleArrayOutput

type GetAuthScopeRoleInput

type GetAuthScopeRoleInput interface {
	pulumi.Input

	ToGetAuthScopeRoleOutput() GetAuthScopeRoleOutput
	ToGetAuthScopeRoleOutputWithContext(context.Context) GetAuthScopeRoleOutput
}

GetAuthScopeRoleInput is an input type that accepts GetAuthScopeRoleArgs and GetAuthScopeRoleOutput values. You can construct a concrete instance of `GetAuthScopeRoleInput` via:

GetAuthScopeRoleArgs{...}

type GetAuthScopeRoleOutput

type GetAuthScopeRoleOutput struct{ *pulumi.OutputState }

func (GetAuthScopeRoleOutput) ElementType

func (GetAuthScopeRoleOutput) ElementType() reflect.Type

func (GetAuthScopeRoleOutput) RoleId

The ID of the role.

func (GetAuthScopeRoleOutput) RoleName

The name of the role.

func (GetAuthScopeRoleOutput) ToGetAuthScopeRoleOutput

func (o GetAuthScopeRoleOutput) ToGetAuthScopeRoleOutput() GetAuthScopeRoleOutput

func (GetAuthScopeRoleOutput) ToGetAuthScopeRoleOutputWithContext

func (o GetAuthScopeRoleOutput) ToGetAuthScopeRoleOutputWithContext(ctx context.Context) GetAuthScopeRoleOutput

type GetEndpointArgs

type GetEndpointArgs struct {
	// The region the endpoint is assigned to. The
	// `region` and `endpointRegion` can be different.
	EndpointRegion *string `pulumi:"endpointRegion"`
	// The endpoint interface. Valid values are `public`,
	// `internal`, and `admin`. Default value is `public`
	Interface *string `pulumi:"interface"`
	// The name of the endpoint.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The service id this endpoint belongs to.
	ServiceId *string `pulumi:"serviceId"`
	// The service name of the endpoint.
	ServiceName *string `pulumi:"serviceName"`
	// The service type of the endpoint.
	ServiceType *string `pulumi:"serviceType"`
}

A collection of arguments for invoking getEndpoint.

type GetEndpointResult

type GetEndpointResult struct {
	// See Argument Reference above.
	EndpointRegion *string `pulumi:"endpointRegion"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Interface *string `pulumi:"interface"`
	// See Argument Reference above.
	Name *string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// See Argument Reference above.
	ServiceId *string `pulumi:"serviceId"`
	// See Argument Reference above.
	ServiceName *string `pulumi:"serviceName"`
	// See Argument Reference above.
	ServiceType *string `pulumi:"serviceType"`
	// The endpoint URL.
	Url string `pulumi:"url"`
}

A collection of values returned by getEndpoint.

func GetEndpoint

func GetEndpoint(ctx *pulumi.Context, args *GetEndpointArgs, opts ...pulumi.InvokeOption) (*GetEndpointResult, error)

Use this data source to get the ID of an OpenStack endpoint.

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "demo"
		_, err := identity.GetEndpoint(ctx, &identity.GetEndpointArgs{
			ServiceName: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetGroupArgs

type GetGroupArgs struct {
	// The domain the group belongs to.
	DomainId *string `pulumi:"domainId"`
	// The name of the group.
	Name string `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getGroup.

type GetGroupResult

type GetGroupResult struct {
	// A description of the group.
	Description string `pulumi:"description"`
	// See Argument Reference above.
	DomainId string `pulumi:"domainId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
}

A collection of values returned by getGroup.

func GetGroup

func GetGroup(ctx *pulumi.Context, args *GetGroupArgs, opts ...pulumi.InvokeOption) (*GetGroupResult, error)

Use this data source to get the ID of an OpenStack group.

Note: This usually requires admin privileges.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.GetGroup(ctx, &identity.GetGroupArgs{
			Name: "admins",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetServiceArgs

type GetServiceArgs struct {
	// The service status.
	Enabled *bool `pulumi:"enabled"`
	// The service name.
	Name *string `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
	// The service type.
	Type *string `pulumi:"type"`
}

A collection of arguments for invoking getService.

type GetServiceResult

type GetServiceResult struct {
	// The service description.
	Description string `pulumi:"description"`
	// See Argument Reference above.
	Enabled *bool `pulumi:"enabled"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Name *string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
	// See Argument Reference above.
	Type *string `pulumi:"type"`
}

A collection of values returned by getService.

func GetService

func GetService(ctx *pulumi.Context, args *GetServiceArgs, opts ...pulumi.InvokeOption) (*GetServiceResult, error)

Use this data source to get the ID of an OpenStack service.

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "keystone"
		_, err := identity.GetService(ctx, &identity.GetServiceArgs{
			Name: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GroupV3 added in v2.4.0

type GroupV3 struct {
	pulumi.CustomResourceState

	// A description of the group.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The domain the group belongs to.
	DomainId pulumi.StringOutput `pulumi:"domainId"`
	// The name of the group.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new group.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a V3 group resource within OpenStack Keystone.

Note: You _must_ have admin privileges in your OpenStack cloud to use this resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewGroupV3(ctx, "group1", &identity.GroupV3Args{
			Description: pulumi.String("group 1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetGroupV3 added in v2.4.0

func GetGroupV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GroupV3State, opts ...pulumi.ResourceOption) (*GroupV3, error)

GetGroupV3 gets an existing GroupV3 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 NewGroupV3 added in v2.4.0

func NewGroupV3(ctx *pulumi.Context,
	name string, args *GroupV3Args, opts ...pulumi.ResourceOption) (*GroupV3, error)

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

type GroupV3Args added in v2.4.0

type GroupV3Args struct {
	// A description of the group.
	Description pulumi.StringPtrInput
	// The domain the group belongs to.
	DomainId pulumi.StringPtrInput
	// The name of the group.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new group.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a GroupV3 resource.

func (GroupV3Args) ElementType added in v2.4.0

func (GroupV3Args) ElementType() reflect.Type

type GroupV3State added in v2.4.0

type GroupV3State struct {
	// A description of the group.
	Description pulumi.StringPtrInput
	// The domain the group belongs to.
	DomainId pulumi.StringPtrInput
	// The name of the group.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new group.
	Region pulumi.StringPtrInput
}

func (GroupV3State) ElementType added in v2.4.0

func (GroupV3State) ElementType() reflect.Type

type LookupProjectArgs

type LookupProjectArgs struct {
	// The domain this project belongs to.
	DomainId *string `pulumi:"domainId"`
	// Whether the project is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled *bool `pulumi:"enabled"`
	// Whether this project is a domain. Valid values
	// are `true` and `false`.
	IsDomain *bool `pulumi:"isDomain"`
	// The name of the project.
	Name *string `pulumi:"name"`
	// The parent of this project.
	ParentId *string `pulumi:"parentId"`
	// The region the project is located in.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getProject.

type LookupProjectResult

type LookupProjectResult struct {
	// The description of the project.
	Description string `pulumi:"description"`
	// See Argument Reference above.
	DomainId string `pulumi:"domainId"`
	// See Argument Reference above.
	Enabled *bool `pulumi:"enabled"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	IsDomain *bool `pulumi:"isDomain"`
	// See Argument Reference above.
	Name *string `pulumi:"name"`
	// See Argument Reference above.
	ParentId *string `pulumi:"parentId"`
	// The region the project is located in.
	Region string `pulumi:"region"`
	// See Argument Reference above.
	Tags []string `pulumi:"tags"`
}

A collection of values returned by getProject.

func LookupProject

func LookupProject(ctx *pulumi.Context, args *LookupProjectArgs, opts ...pulumi.InvokeOption) (*LookupProjectResult, error)

Use this data source to get the ID of an OpenStack project.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "demo"
		_, err := identity.LookupProject(ctx, &identity.LookupProjectArgs{
			Name: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupRoleArgs

type LookupRoleArgs struct {
	// The domain the role belongs to.
	DomainId *string `pulumi:"domainId"`
	// The name of the role.
	Name string `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getRole.

type LookupRoleResult

type LookupRoleResult struct {
	// See Argument Reference above.
	DomainId string `pulumi:"domainId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	Name string `pulumi:"name"`
	// See Argument Reference above.
	Region string `pulumi:"region"`
}

A collection of values returned by getRole.

func LookupRole

func LookupRole(ctx *pulumi.Context, args *LookupRoleArgs, opts ...pulumi.InvokeOption) (*LookupRoleResult, error)

Use this data source to get the ID of an OpenStack role.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.LookupRole(ctx, &identity.LookupRoleArgs{
			Name: "admin",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupUserArgs

type LookupUserArgs struct {
	// The domain this user belongs to.
	DomainId *string `pulumi:"domainId"`
	// Whether the user is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled *bool `pulumi:"enabled"`
	// The identity provider ID of the user.
	IdpId *string `pulumi:"idpId"`
	// The name of the user.
	Name *string `pulumi:"name"`
	// Query for expired passwords. See the [OpenStack API docs](https://developer.openstack.org/api-ref/identity/v3/#list-users) for more information on the query format.
	PasswordExpiresAt *string `pulumi:"passwordExpiresAt"`
	// The protocol ID of the user.
	ProtocolId *string `pulumi:"protocolId"`
	// The region the user is located in.
	Region *string `pulumi:"region"`
	// The unique ID of the user.
	UniqueId *string `pulumi:"uniqueId"`
}

A collection of arguments for invoking getUser.

type LookupUserResult

type LookupUserResult struct {
	// See Argument Reference above.
	DefaultProjectId string `pulumi:"defaultProjectId"`
	// A description of the user.
	Description string `pulumi:"description"`
	// See Argument Reference above.
	DomainId string `pulumi:"domainId"`
	// See Argument Reference above.
	Enabled *bool `pulumi:"enabled"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// See Argument Reference above.
	IdpId *string `pulumi:"idpId"`
	// See Argument Reference above.
	Name *string `pulumi:"name"`
	// See Argument Reference above.
	PasswordExpiresAt *string `pulumi:"passwordExpiresAt"`
	// See Argument Reference above.
	ProtocolId *string `pulumi:"protocolId"`
	// The region the user is located in.
	Region string `pulumi:"region"`
	// See Argument Reference above.
	UniqueId *string `pulumi:"uniqueId"`
}

A collection of values returned by getUser.

func LookupUser

func LookupUser(ctx *pulumi.Context, args *LookupUserArgs, opts ...pulumi.InvokeOption) (*LookupUserResult, error)

Use this data source to get the ID of an OpenStack user.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "user_1"
		_, err := identity.LookupUser(ctx, &identity.LookupUserArgs{
			Name: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type Project

type Project struct {
	pulumi.CustomResourceState

	// A description of the project.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The domain this project belongs to.
	DomainId pulumi.StringOutput `pulumi:"domainId"`
	// Whether the project is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// Whether this project is a domain. Valid values
	// are `true` and `false`.
	IsDomain pulumi.BoolPtrOutput `pulumi:"isDomain"`
	// The name of the project.
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of this project.
	ParentId pulumi.StringOutput `pulumi:"parentId"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new project.
	Region pulumi.StringOutput `pulumi:"region"`
	// Tags for the project. Changing this updates the existing
	// project.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
}

Manages a V3 Project resource within OpenStack Keystone.

Note: You _must_ have admin privileges in your OpenStack cloud to use this resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewProject(ctx, "project1", &identity.ProjectArgs{
			Description: pulumi.String("A project"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetProject

func GetProject(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectState, opts ...pulumi.ResourceOption) (*Project, error)

GetProject gets an existing Project 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 NewProject

func NewProject(ctx *pulumi.Context,
	name string, args *ProjectArgs, opts ...pulumi.ResourceOption) (*Project, error)

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

type ProjectArgs

type ProjectArgs struct {
	// A description of the project.
	Description pulumi.StringPtrInput
	// The domain this project belongs to.
	DomainId pulumi.StringPtrInput
	// Whether the project is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrInput
	// Whether this project is a domain. Valid values
	// are `true` and `false`.
	IsDomain pulumi.BoolPtrInput
	// The name of the project.
	Name pulumi.StringPtrInput
	// The parent of this project.
	ParentId pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new project.
	Region pulumi.StringPtrInput
	// Tags for the project. Changing this updates the existing
	// project.
	Tags pulumi.StringArrayInput
}

The set of arguments for constructing a Project resource.

func (ProjectArgs) ElementType

func (ProjectArgs) ElementType() reflect.Type

type ProjectState

type ProjectState struct {
	// A description of the project.
	Description pulumi.StringPtrInput
	// The domain this project belongs to.
	DomainId pulumi.StringPtrInput
	// Whether the project is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrInput
	// Whether this project is a domain. Valid values
	// are `true` and `false`.
	IsDomain pulumi.BoolPtrInput
	// The name of the project.
	Name pulumi.StringPtrInput
	// The parent of this project.
	ParentId pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new project.
	Region pulumi.StringPtrInput
	// Tags for the project. Changing this updates the existing
	// project.
	Tags pulumi.StringArrayInput
}

func (ProjectState) ElementType

func (ProjectState) ElementType() reflect.Type

type Role

type Role struct {
	pulumi.CustomResourceState

	// The domain the role belongs to.
	DomainId pulumi.StringOutput `pulumi:"domainId"`
	// The name of the role.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new Role.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a V3 Role resource within OpenStack Keystone.

Note: You _must_ have admin privileges in your OpenStack cloud to use this resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewRole(ctx, "role1", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetRole

func GetRole(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RoleState, opts ...pulumi.ResourceOption) (*Role, error)

GetRole gets an existing Role 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 NewRole

func NewRole(ctx *pulumi.Context,
	name string, args *RoleArgs, opts ...pulumi.ResourceOption) (*Role, error)

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

type RoleArgs

type RoleArgs struct {
	// The domain the role belongs to.
	DomainId pulumi.StringPtrInput
	// The name of the role.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new Role.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a Role resource.

func (RoleArgs) ElementType

func (RoleArgs) ElementType() reflect.Type

type RoleAssignment

type RoleAssignment struct {
	pulumi.CustomResourceState

	// The domain to assign the role in.
	DomainId pulumi.StringPtrOutput `pulumi:"domainId"`
	// The group to assign the role to.
	GroupId pulumi.StringPtrOutput `pulumi:"groupId"`
	// The project to assign the role in.
	ProjectId pulumi.StringPtrOutput `pulumi:"projectId"`
	Region    pulumi.StringOutput    `pulumi:"region"`
	// The role to assign.
	RoleId pulumi.StringOutput `pulumi:"roleId"`
	// The user to assign the role to.
	UserId pulumi.StringPtrOutput `pulumi:"userId"`
}

Manages a V3 Role assignment within OpenStack Keystone.

Note: You _must_ have admin privileges in your OpenStack cloud to use this resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project1, err := identity.NewProject(ctx, "project1", nil)
		if err != nil {
			return err
		}
		user1, err := identity.NewUser(ctx, "user1", &identity.UserArgs{
			DefaultProjectId: project1.ID(),
		})
		if err != nil {
			return err
		}
		role1, err := identity.NewRole(ctx, "role1", nil)
		if err != nil {
			return err
		}
		_, err = identity.NewRoleAssignment(ctx, "roleAssignment1", &identity.RoleAssignmentArgs{
			ProjectId: project1.ID(),
			RoleId:    role1.ID(),
			UserId:    user1.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetRoleAssignment

func GetRoleAssignment(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RoleAssignmentState, opts ...pulumi.ResourceOption) (*RoleAssignment, error)

GetRoleAssignment gets an existing RoleAssignment 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 NewRoleAssignment

func NewRoleAssignment(ctx *pulumi.Context,
	name string, args *RoleAssignmentArgs, opts ...pulumi.ResourceOption) (*RoleAssignment, error)

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

type RoleAssignmentArgs

type RoleAssignmentArgs struct {
	// The domain to assign the role in.
	DomainId pulumi.StringPtrInput
	// The group to assign the role to.
	GroupId pulumi.StringPtrInput
	// The project to assign the role in.
	ProjectId pulumi.StringPtrInput
	Region    pulumi.StringPtrInput
	// The role to assign.
	RoleId pulumi.StringInput
	// The user to assign the role to.
	UserId pulumi.StringPtrInput
}

The set of arguments for constructing a RoleAssignment resource.

func (RoleAssignmentArgs) ElementType

func (RoleAssignmentArgs) ElementType() reflect.Type

type RoleAssignmentState

type RoleAssignmentState struct {
	// The domain to assign the role in.
	DomainId pulumi.StringPtrInput
	// The group to assign the role to.
	GroupId pulumi.StringPtrInput
	// The project to assign the role in.
	ProjectId pulumi.StringPtrInput
	Region    pulumi.StringPtrInput
	// The role to assign.
	RoleId pulumi.StringPtrInput
	// The user to assign the role to.
	UserId pulumi.StringPtrInput
}

func (RoleAssignmentState) ElementType

func (RoleAssignmentState) ElementType() reflect.Type

type RoleState

type RoleState struct {
	// The domain the role belongs to.
	DomainId pulumi.StringPtrInput
	// The name of the role.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new Role.
	Region pulumi.StringPtrInput
}

func (RoleState) ElementType

func (RoleState) ElementType() reflect.Type

type ServiceV3

type ServiceV3 struct {
	pulumi.CustomResourceState

	// The service description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The service status. Defaults to `true`.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// The service name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringOutput `pulumi:"region"`
	// The service type.
	Type pulumi.StringOutput `pulumi:"type"`
}

Manages a V3 Service resource within OpenStack Keystone.

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := identity.NewServiceV3(ctx, "service1", &identity.ServiceV3Args{
			Type: pulumi.String("custom"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetServiceV3

func GetServiceV3(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceV3State, opts ...pulumi.ResourceOption) (*ServiceV3, error)

GetServiceV3 gets an existing ServiceV3 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 NewServiceV3

func NewServiceV3(ctx *pulumi.Context,
	name string, args *ServiceV3Args, opts ...pulumi.ResourceOption) (*ServiceV3, error)

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

type ServiceV3Args

type ServiceV3Args struct {
	// The service description.
	Description pulumi.StringPtrInput
	// The service status. Defaults to `true`.
	Enabled pulumi.BoolPtrInput
	// The service name.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput
	// The service type.
	Type pulumi.StringInput
}

The set of arguments for constructing a ServiceV3 resource.

func (ServiceV3Args) ElementType

func (ServiceV3Args) ElementType() reflect.Type

type ServiceV3State

type ServiceV3State struct {
	// The service description.
	Description pulumi.StringPtrInput
	// The service status. Defaults to `true`.
	Enabled pulumi.BoolPtrInput
	// The service name.
	Name pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used.
	Region pulumi.StringPtrInput
	// The service type.
	Type pulumi.StringPtrInput
}

func (ServiceV3State) ElementType

func (ServiceV3State) ElementType() reflect.Type

type User

type User struct {
	pulumi.CustomResourceState

	// The default project this user belongs to.
	DefaultProjectId pulumi.StringOutput `pulumi:"defaultProjectId"`
	// A description of the user.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The domain this user belongs to.
	DomainId pulumi.StringOutput `pulumi:"domainId"`
	// Whether the user is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// Free-form key/value pairs of extra information.
	Extra pulumi.MapOutput `pulumi:"extra"`
	// User will not have to
	// change their password upon first use. Valid values are `true` and `false`.
	IgnoreChangePasswordUponFirstUse pulumi.BoolPtrOutput `pulumi:"ignoreChangePasswordUponFirstUse"`
	// User will not have a failure
	// lockout placed on their account. Valid values are `true` and `false`.
	IgnoreLockoutFailureAttempts pulumi.BoolPtrOutput `pulumi:"ignoreLockoutFailureAttempts"`
	// User's password will not expire.
	// Valid values are `true` and `false`.
	IgnorePasswordExpiry pulumi.BoolPtrOutput `pulumi:"ignorePasswordExpiry"`
	// Whether to enable multi-factor
	// authentication. Valid values are `true` and `false`.
	MultiFactorAuthEnabled pulumi.BoolPtrOutput `pulumi:"multiFactorAuthEnabled"`
	// A multi-factor authentication rule.
	// The structure is documented below. Please see the
	// [Ocata release notes](https://docs.openstack.org/releasenotes/keystone/ocata.html)
	// for more information on how to use mulit-factor rules.
	MultiFactorAuthRules UserMultiFactorAuthRuleArrayOutput `pulumi:"multiFactorAuthRules"`
	// The name of the user.
	Name pulumi.StringOutput `pulumi:"name"`
	// The password for the user.
	Password pulumi.StringPtrOutput `pulumi:"password"`
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new User.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a V3 User resource within OpenStack Keystone.

Note: You _must_ have admin privileges in your OpenStack cloud to use this resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-openstack/sdk/v2/go/openstack/identity"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project1, err := identity.NewProject(ctx, "project1", nil)
		if err != nil {
			return err
		}
		_, err = identity.NewUser(ctx, "user1", &identity.UserArgs{
			DefaultProjectId: project1.ID(),
			Description:      pulumi.String("A user"),
			Extra: pulumi.StringMap{
				"email": pulumi.String("user_1@foobar.com"),
			},
			IgnoreChangePasswordUponFirstUse: pulumi.Bool(true),
			MultiFactorAuthEnabled:           pulumi.Bool(true),
			MultiFactorAuthRules: identity.UserMultiFactorAuthRuleArray{
				&identity.UserMultiFactorAuthRuleArgs{
					Rules: pulumi.StringArray{
						pulumi.String("password"),
						pulumi.String("totp"),
					},
				},
				&identity.UserMultiFactorAuthRuleArgs{
					Rules: pulumi.StringArray{
						pulumi.String("password"),
					},
				},
			},
			Password: pulumi.String("password123"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetUser

func GetUser(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UserState, opts ...pulumi.ResourceOption) (*User, error)

GetUser gets an existing User 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 NewUser

func NewUser(ctx *pulumi.Context,
	name string, args *UserArgs, opts ...pulumi.ResourceOption) (*User, error)

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

type UserArgs

type UserArgs struct {
	// The default project this user belongs to.
	DefaultProjectId pulumi.StringPtrInput
	// A description of the user.
	Description pulumi.StringPtrInput
	// The domain this user belongs to.
	DomainId pulumi.StringPtrInput
	// Whether the user is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrInput
	// Free-form key/value pairs of extra information.
	Extra pulumi.MapInput
	// User will not have to
	// change their password upon first use. Valid values are `true` and `false`.
	IgnoreChangePasswordUponFirstUse pulumi.BoolPtrInput
	// User will not have a failure
	// lockout placed on their account. Valid values are `true` and `false`.
	IgnoreLockoutFailureAttempts pulumi.BoolPtrInput
	// User's password will not expire.
	// Valid values are `true` and `false`.
	IgnorePasswordExpiry pulumi.BoolPtrInput
	// Whether to enable multi-factor
	// authentication. Valid values are `true` and `false`.
	MultiFactorAuthEnabled pulumi.BoolPtrInput
	// A multi-factor authentication rule.
	// The structure is documented below. Please see the
	// [Ocata release notes](https://docs.openstack.org/releasenotes/keystone/ocata.html)
	// for more information on how to use mulit-factor rules.
	MultiFactorAuthRules UserMultiFactorAuthRuleArrayInput
	// The name of the user.
	Name pulumi.StringPtrInput
	// The password for the user.
	Password pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new User.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a User resource.

func (UserArgs) ElementType

func (UserArgs) ElementType() reflect.Type

type UserMultiFactorAuthRule

type UserMultiFactorAuthRule struct {
	// A list of authentication plugins that the user must
	// authenticate with.
	Rules []string `pulumi:"rules"`
}

type UserMultiFactorAuthRuleArgs

type UserMultiFactorAuthRuleArgs struct {
	// A list of authentication plugins that the user must
	// authenticate with.
	Rules pulumi.StringArrayInput `pulumi:"rules"`
}

func (UserMultiFactorAuthRuleArgs) ElementType

func (UserMultiFactorAuthRuleArgs) ToUserMultiFactorAuthRuleOutput

func (i UserMultiFactorAuthRuleArgs) ToUserMultiFactorAuthRuleOutput() UserMultiFactorAuthRuleOutput

func (UserMultiFactorAuthRuleArgs) ToUserMultiFactorAuthRuleOutputWithContext

func (i UserMultiFactorAuthRuleArgs) ToUserMultiFactorAuthRuleOutputWithContext(ctx context.Context) UserMultiFactorAuthRuleOutput

type UserMultiFactorAuthRuleArray

type UserMultiFactorAuthRuleArray []UserMultiFactorAuthRuleInput

func (UserMultiFactorAuthRuleArray) ElementType

func (UserMultiFactorAuthRuleArray) ToUserMultiFactorAuthRuleArrayOutput

func (i UserMultiFactorAuthRuleArray) ToUserMultiFactorAuthRuleArrayOutput() UserMultiFactorAuthRuleArrayOutput

func (UserMultiFactorAuthRuleArray) ToUserMultiFactorAuthRuleArrayOutputWithContext

func (i UserMultiFactorAuthRuleArray) ToUserMultiFactorAuthRuleArrayOutputWithContext(ctx context.Context) UserMultiFactorAuthRuleArrayOutput

type UserMultiFactorAuthRuleArrayInput

type UserMultiFactorAuthRuleArrayInput interface {
	pulumi.Input

	ToUserMultiFactorAuthRuleArrayOutput() UserMultiFactorAuthRuleArrayOutput
	ToUserMultiFactorAuthRuleArrayOutputWithContext(context.Context) UserMultiFactorAuthRuleArrayOutput
}

UserMultiFactorAuthRuleArrayInput is an input type that accepts UserMultiFactorAuthRuleArray and UserMultiFactorAuthRuleArrayOutput values. You can construct a concrete instance of `UserMultiFactorAuthRuleArrayInput` via:

UserMultiFactorAuthRuleArray{ UserMultiFactorAuthRuleArgs{...} }

type UserMultiFactorAuthRuleArrayOutput

type UserMultiFactorAuthRuleArrayOutput struct{ *pulumi.OutputState }

func (UserMultiFactorAuthRuleArrayOutput) ElementType

func (UserMultiFactorAuthRuleArrayOutput) Index

func (UserMultiFactorAuthRuleArrayOutput) ToUserMultiFactorAuthRuleArrayOutput

func (o UserMultiFactorAuthRuleArrayOutput) ToUserMultiFactorAuthRuleArrayOutput() UserMultiFactorAuthRuleArrayOutput

func (UserMultiFactorAuthRuleArrayOutput) ToUserMultiFactorAuthRuleArrayOutputWithContext

func (o UserMultiFactorAuthRuleArrayOutput) ToUserMultiFactorAuthRuleArrayOutputWithContext(ctx context.Context) UserMultiFactorAuthRuleArrayOutput

type UserMultiFactorAuthRuleInput

type UserMultiFactorAuthRuleInput interface {
	pulumi.Input

	ToUserMultiFactorAuthRuleOutput() UserMultiFactorAuthRuleOutput
	ToUserMultiFactorAuthRuleOutputWithContext(context.Context) UserMultiFactorAuthRuleOutput
}

UserMultiFactorAuthRuleInput is an input type that accepts UserMultiFactorAuthRuleArgs and UserMultiFactorAuthRuleOutput values. You can construct a concrete instance of `UserMultiFactorAuthRuleInput` via:

UserMultiFactorAuthRuleArgs{...}

type UserMultiFactorAuthRuleOutput

type UserMultiFactorAuthRuleOutput struct{ *pulumi.OutputState }

func (UserMultiFactorAuthRuleOutput) ElementType

func (UserMultiFactorAuthRuleOutput) Rules

A list of authentication plugins that the user must authenticate with.

func (UserMultiFactorAuthRuleOutput) ToUserMultiFactorAuthRuleOutput

func (o UserMultiFactorAuthRuleOutput) ToUserMultiFactorAuthRuleOutput() UserMultiFactorAuthRuleOutput

func (UserMultiFactorAuthRuleOutput) ToUserMultiFactorAuthRuleOutputWithContext

func (o UserMultiFactorAuthRuleOutput) ToUserMultiFactorAuthRuleOutputWithContext(ctx context.Context) UserMultiFactorAuthRuleOutput

type UserState

type UserState struct {
	// The default project this user belongs to.
	DefaultProjectId pulumi.StringPtrInput
	// A description of the user.
	Description pulumi.StringPtrInput
	// The domain this user belongs to.
	DomainId pulumi.StringPtrInput
	// Whether the user is enabled or disabled. Valid
	// values are `true` and `false`.
	Enabled pulumi.BoolPtrInput
	// Free-form key/value pairs of extra information.
	Extra pulumi.MapInput
	// User will not have to
	// change their password upon first use. Valid values are `true` and `false`.
	IgnoreChangePasswordUponFirstUse pulumi.BoolPtrInput
	// User will not have a failure
	// lockout placed on their account. Valid values are `true` and `false`.
	IgnoreLockoutFailureAttempts pulumi.BoolPtrInput
	// User's password will not expire.
	// Valid values are `true` and `false`.
	IgnorePasswordExpiry pulumi.BoolPtrInput
	// Whether to enable multi-factor
	// authentication. Valid values are `true` and `false`.
	MultiFactorAuthEnabled pulumi.BoolPtrInput
	// A multi-factor authentication rule.
	// The structure is documented below. Please see the
	// [Ocata release notes](https://docs.openstack.org/releasenotes/keystone/ocata.html)
	// for more information on how to use mulit-factor rules.
	MultiFactorAuthRules UserMultiFactorAuthRuleArrayInput
	// The name of the user.
	Name pulumi.StringPtrInput
	// The password for the user.
	Password pulumi.StringPtrInput
	// The region in which to obtain the V3 Keystone client.
	// If omitted, the `region` argument of the provider is used. Changing this
	// creates a new User.
	Region pulumi.StringPtrInput
}

func (UserState) ElementType

func (UserState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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