endpoints

package
v7.20.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 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 ConsumersIamBinding

type ConsumersIamBinding struct {
	pulumi.CustomResourceState

	Condition       ConsumersIamBindingConditionPtrOutput `pulumi:"condition"`
	ConsumerProject pulumi.StringOutput                   `pulumi:"consumerProject"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringOutput `pulumi:"role"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints ServiceConsumers. Each of these resources serves a different use case:

* `endpoints.ConsumersIamPolicy`: Authoritative. Sets the IAM policy for the serviceconsumers and replaces any existing policy already attached. * `endpoints.ConsumersIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the serviceconsumers are preserved. * `endpoints.ConsumersIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the serviceconsumers are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ConsumersIamPolicy`: Retrieves the IAM policy for the serviceconsumers

> **Note:** `endpoints.ConsumersIamPolicy` **cannot** be used in conjunction with `endpoints.ConsumersIamBinding` and `endpoints.ConsumersIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ConsumersIamBinding` resources **can be** used in conjunction with `endpoints.ConsumersIamMember` resources **only if** they do not grant privilege to the same role.

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}/consumers/{{consumer_project}}

* {{service_name}}/{{consumer_project}}

* {{consumer_project}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints serviceconsumers IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamBinding:ConsumersIamBinding editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamBinding:ConsumersIamBinding editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamBinding:ConsumersIamBinding editor services/{{service_name}}/consumers/{{consumer_project}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetConsumersIamBinding

func GetConsumersIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConsumersIamBindingState, opts ...pulumi.ResourceOption) (*ConsumersIamBinding, error)

GetConsumersIamBinding gets an existing ConsumersIamBinding 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 NewConsumersIamBinding

func NewConsumersIamBinding(ctx *pulumi.Context,
	name string, args *ConsumersIamBindingArgs, opts ...pulumi.ResourceOption) (*ConsumersIamBinding, error)

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

func (*ConsumersIamBinding) ElementType

func (*ConsumersIamBinding) ElementType() reflect.Type

func (*ConsumersIamBinding) ToConsumersIamBindingOutput

func (i *ConsumersIamBinding) ToConsumersIamBindingOutput() ConsumersIamBindingOutput

func (*ConsumersIamBinding) ToConsumersIamBindingOutputWithContext

func (i *ConsumersIamBinding) ToConsumersIamBindingOutputWithContext(ctx context.Context) ConsumersIamBindingOutput

type ConsumersIamBindingArgs

type ConsumersIamBindingArgs struct {
	Condition       ConsumersIamBindingConditionPtrInput
	ConsumerProject pulumi.StringInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ConsumersIamBinding resource.

func (ConsumersIamBindingArgs) ElementType

func (ConsumersIamBindingArgs) ElementType() reflect.Type

type ConsumersIamBindingArray

type ConsumersIamBindingArray []ConsumersIamBindingInput

func (ConsumersIamBindingArray) ElementType

func (ConsumersIamBindingArray) ElementType() reflect.Type

func (ConsumersIamBindingArray) ToConsumersIamBindingArrayOutput

func (i ConsumersIamBindingArray) ToConsumersIamBindingArrayOutput() ConsumersIamBindingArrayOutput

func (ConsumersIamBindingArray) ToConsumersIamBindingArrayOutputWithContext

func (i ConsumersIamBindingArray) ToConsumersIamBindingArrayOutputWithContext(ctx context.Context) ConsumersIamBindingArrayOutput

type ConsumersIamBindingArrayInput

type ConsumersIamBindingArrayInput interface {
	pulumi.Input

	ToConsumersIamBindingArrayOutput() ConsumersIamBindingArrayOutput
	ToConsumersIamBindingArrayOutputWithContext(context.Context) ConsumersIamBindingArrayOutput
}

ConsumersIamBindingArrayInput is an input type that accepts ConsumersIamBindingArray and ConsumersIamBindingArrayOutput values. You can construct a concrete instance of `ConsumersIamBindingArrayInput` via:

ConsumersIamBindingArray{ ConsumersIamBindingArgs{...} }

type ConsumersIamBindingArrayOutput

type ConsumersIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ConsumersIamBindingArrayOutput) ElementType

func (ConsumersIamBindingArrayOutput) Index

func (ConsumersIamBindingArrayOutput) ToConsumersIamBindingArrayOutput

func (o ConsumersIamBindingArrayOutput) ToConsumersIamBindingArrayOutput() ConsumersIamBindingArrayOutput

func (ConsumersIamBindingArrayOutput) ToConsumersIamBindingArrayOutputWithContext

func (o ConsumersIamBindingArrayOutput) ToConsumersIamBindingArrayOutputWithContext(ctx context.Context) ConsumersIamBindingArrayOutput

type ConsumersIamBindingCondition

type ConsumersIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type ConsumersIamBindingConditionArgs

type ConsumersIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (ConsumersIamBindingConditionArgs) ElementType

func (ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionOutput

func (i ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionOutput() ConsumersIamBindingConditionOutput

func (ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionOutputWithContext

func (i ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionOutputWithContext(ctx context.Context) ConsumersIamBindingConditionOutput

func (ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionPtrOutput

func (i ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionPtrOutput() ConsumersIamBindingConditionPtrOutput

func (ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionPtrOutputWithContext

func (i ConsumersIamBindingConditionArgs) ToConsumersIamBindingConditionPtrOutputWithContext(ctx context.Context) ConsumersIamBindingConditionPtrOutput

type ConsumersIamBindingConditionInput

type ConsumersIamBindingConditionInput interface {
	pulumi.Input

	ToConsumersIamBindingConditionOutput() ConsumersIamBindingConditionOutput
	ToConsumersIamBindingConditionOutputWithContext(context.Context) ConsumersIamBindingConditionOutput
}

ConsumersIamBindingConditionInput is an input type that accepts ConsumersIamBindingConditionArgs and ConsumersIamBindingConditionOutput values. You can construct a concrete instance of `ConsumersIamBindingConditionInput` via:

ConsumersIamBindingConditionArgs{...}

type ConsumersIamBindingConditionOutput

type ConsumersIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ConsumersIamBindingConditionOutput) Description

func (ConsumersIamBindingConditionOutput) ElementType

func (ConsumersIamBindingConditionOutput) Expression

func (ConsumersIamBindingConditionOutput) Title

func (ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionOutput

func (o ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionOutput() ConsumersIamBindingConditionOutput

func (ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionOutputWithContext

func (o ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionOutputWithContext(ctx context.Context) ConsumersIamBindingConditionOutput

func (ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionPtrOutput

func (o ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionPtrOutput() ConsumersIamBindingConditionPtrOutput

func (ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionPtrOutputWithContext

func (o ConsumersIamBindingConditionOutput) ToConsumersIamBindingConditionPtrOutputWithContext(ctx context.Context) ConsumersIamBindingConditionPtrOutput

type ConsumersIamBindingConditionPtrInput

type ConsumersIamBindingConditionPtrInput interface {
	pulumi.Input

	ToConsumersIamBindingConditionPtrOutput() ConsumersIamBindingConditionPtrOutput
	ToConsumersIamBindingConditionPtrOutputWithContext(context.Context) ConsumersIamBindingConditionPtrOutput
}

ConsumersIamBindingConditionPtrInput is an input type that accepts ConsumersIamBindingConditionArgs, ConsumersIamBindingConditionPtr and ConsumersIamBindingConditionPtrOutput values. You can construct a concrete instance of `ConsumersIamBindingConditionPtrInput` via:

        ConsumersIamBindingConditionArgs{...}

or:

        nil

type ConsumersIamBindingConditionPtrOutput

type ConsumersIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ConsumersIamBindingConditionPtrOutput) Description

func (ConsumersIamBindingConditionPtrOutput) Elem

func (ConsumersIamBindingConditionPtrOutput) ElementType

func (ConsumersIamBindingConditionPtrOutput) Expression

func (ConsumersIamBindingConditionPtrOutput) Title

func (ConsumersIamBindingConditionPtrOutput) ToConsumersIamBindingConditionPtrOutput

func (o ConsumersIamBindingConditionPtrOutput) ToConsumersIamBindingConditionPtrOutput() ConsumersIamBindingConditionPtrOutput

func (ConsumersIamBindingConditionPtrOutput) ToConsumersIamBindingConditionPtrOutputWithContext

func (o ConsumersIamBindingConditionPtrOutput) ToConsumersIamBindingConditionPtrOutputWithContext(ctx context.Context) ConsumersIamBindingConditionPtrOutput

type ConsumersIamBindingInput

type ConsumersIamBindingInput interface {
	pulumi.Input

	ToConsumersIamBindingOutput() ConsumersIamBindingOutput
	ToConsumersIamBindingOutputWithContext(ctx context.Context) ConsumersIamBindingOutput
}

type ConsumersIamBindingMap

type ConsumersIamBindingMap map[string]ConsumersIamBindingInput

func (ConsumersIamBindingMap) ElementType

func (ConsumersIamBindingMap) ElementType() reflect.Type

func (ConsumersIamBindingMap) ToConsumersIamBindingMapOutput

func (i ConsumersIamBindingMap) ToConsumersIamBindingMapOutput() ConsumersIamBindingMapOutput

func (ConsumersIamBindingMap) ToConsumersIamBindingMapOutputWithContext

func (i ConsumersIamBindingMap) ToConsumersIamBindingMapOutputWithContext(ctx context.Context) ConsumersIamBindingMapOutput

type ConsumersIamBindingMapInput

type ConsumersIamBindingMapInput interface {
	pulumi.Input

	ToConsumersIamBindingMapOutput() ConsumersIamBindingMapOutput
	ToConsumersIamBindingMapOutputWithContext(context.Context) ConsumersIamBindingMapOutput
}

ConsumersIamBindingMapInput is an input type that accepts ConsumersIamBindingMap and ConsumersIamBindingMapOutput values. You can construct a concrete instance of `ConsumersIamBindingMapInput` via:

ConsumersIamBindingMap{ "key": ConsumersIamBindingArgs{...} }

type ConsumersIamBindingMapOutput

type ConsumersIamBindingMapOutput struct{ *pulumi.OutputState }

func (ConsumersIamBindingMapOutput) ElementType

func (ConsumersIamBindingMapOutput) MapIndex

func (ConsumersIamBindingMapOutput) ToConsumersIamBindingMapOutput

func (o ConsumersIamBindingMapOutput) ToConsumersIamBindingMapOutput() ConsumersIamBindingMapOutput

func (ConsumersIamBindingMapOutput) ToConsumersIamBindingMapOutputWithContext

func (o ConsumersIamBindingMapOutput) ToConsumersIamBindingMapOutputWithContext(ctx context.Context) ConsumersIamBindingMapOutput

type ConsumersIamBindingOutput

type ConsumersIamBindingOutput struct{ *pulumi.OutputState }

func (ConsumersIamBindingOutput) Condition

func (ConsumersIamBindingOutput) ConsumerProject

func (o ConsumersIamBindingOutput) ConsumerProject() pulumi.StringOutput

func (ConsumersIamBindingOutput) ElementType

func (ConsumersIamBindingOutput) ElementType() reflect.Type

func (ConsumersIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (ConsumersIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (ConsumersIamBindingOutput) Role

The role that should be applied. Only one `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (ConsumersIamBindingOutput) ServiceName

func (ConsumersIamBindingOutput) ToConsumersIamBindingOutput

func (o ConsumersIamBindingOutput) ToConsumersIamBindingOutput() ConsumersIamBindingOutput

func (ConsumersIamBindingOutput) ToConsumersIamBindingOutputWithContext

func (o ConsumersIamBindingOutput) ToConsumersIamBindingOutputWithContext(ctx context.Context) ConsumersIamBindingOutput

type ConsumersIamBindingState

type ConsumersIamBindingState struct {
	Condition       ConsumersIamBindingConditionPtrInput
	ConsumerProject pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ConsumersIamBindingState) ElementType

func (ConsumersIamBindingState) ElementType() reflect.Type

type ConsumersIamMember

type ConsumersIamMember struct {
	pulumi.CustomResourceState

	Condition       ConsumersIamMemberConditionPtrOutput `pulumi:"condition"`
	ConsumerProject pulumi.StringOutput                  `pulumi:"consumerProject"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringOutput `pulumi:"role"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints ServiceConsumers. Each of these resources serves a different use case:

* `endpoints.ConsumersIamPolicy`: Authoritative. Sets the IAM policy for the serviceconsumers and replaces any existing policy already attached. * `endpoints.ConsumersIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the serviceconsumers are preserved. * `endpoints.ConsumersIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the serviceconsumers are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ConsumersIamPolicy`: Retrieves the IAM policy for the serviceconsumers

> **Note:** `endpoints.ConsumersIamPolicy` **cannot** be used in conjunction with `endpoints.ConsumersIamBinding` and `endpoints.ConsumersIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ConsumersIamBinding` resources **can be** used in conjunction with `endpoints.ConsumersIamMember` resources **only if** they do not grant privilege to the same role.

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}/consumers/{{consumer_project}}

* {{service_name}}/{{consumer_project}}

* {{consumer_project}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints serviceconsumers IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamMember:ConsumersIamMember editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamMember:ConsumersIamMember editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamMember:ConsumersIamMember editor services/{{service_name}}/consumers/{{consumer_project}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetConsumersIamMember

func GetConsumersIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConsumersIamMemberState, opts ...pulumi.ResourceOption) (*ConsumersIamMember, error)

GetConsumersIamMember gets an existing ConsumersIamMember 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 NewConsumersIamMember

func NewConsumersIamMember(ctx *pulumi.Context,
	name string, args *ConsumersIamMemberArgs, opts ...pulumi.ResourceOption) (*ConsumersIamMember, error)

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

func (*ConsumersIamMember) ElementType

func (*ConsumersIamMember) ElementType() reflect.Type

func (*ConsumersIamMember) ToConsumersIamMemberOutput

func (i *ConsumersIamMember) ToConsumersIamMemberOutput() ConsumersIamMemberOutput

func (*ConsumersIamMember) ToConsumersIamMemberOutputWithContext

func (i *ConsumersIamMember) ToConsumersIamMemberOutputWithContext(ctx context.Context) ConsumersIamMemberOutput

type ConsumersIamMemberArgs

type ConsumersIamMemberArgs struct {
	Condition       ConsumersIamMemberConditionPtrInput
	ConsumerProject pulumi.StringInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ConsumersIamMember resource.

func (ConsumersIamMemberArgs) ElementType

func (ConsumersIamMemberArgs) ElementType() reflect.Type

type ConsumersIamMemberArray

type ConsumersIamMemberArray []ConsumersIamMemberInput

func (ConsumersIamMemberArray) ElementType

func (ConsumersIamMemberArray) ElementType() reflect.Type

func (ConsumersIamMemberArray) ToConsumersIamMemberArrayOutput

func (i ConsumersIamMemberArray) ToConsumersIamMemberArrayOutput() ConsumersIamMemberArrayOutput

func (ConsumersIamMemberArray) ToConsumersIamMemberArrayOutputWithContext

func (i ConsumersIamMemberArray) ToConsumersIamMemberArrayOutputWithContext(ctx context.Context) ConsumersIamMemberArrayOutput

type ConsumersIamMemberArrayInput

type ConsumersIamMemberArrayInput interface {
	pulumi.Input

	ToConsumersIamMemberArrayOutput() ConsumersIamMemberArrayOutput
	ToConsumersIamMemberArrayOutputWithContext(context.Context) ConsumersIamMemberArrayOutput
}

ConsumersIamMemberArrayInput is an input type that accepts ConsumersIamMemberArray and ConsumersIamMemberArrayOutput values. You can construct a concrete instance of `ConsumersIamMemberArrayInput` via:

ConsumersIamMemberArray{ ConsumersIamMemberArgs{...} }

type ConsumersIamMemberArrayOutput

type ConsumersIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ConsumersIamMemberArrayOutput) ElementType

func (ConsumersIamMemberArrayOutput) Index

func (ConsumersIamMemberArrayOutput) ToConsumersIamMemberArrayOutput

func (o ConsumersIamMemberArrayOutput) ToConsumersIamMemberArrayOutput() ConsumersIamMemberArrayOutput

func (ConsumersIamMemberArrayOutput) ToConsumersIamMemberArrayOutputWithContext

func (o ConsumersIamMemberArrayOutput) ToConsumersIamMemberArrayOutputWithContext(ctx context.Context) ConsumersIamMemberArrayOutput

type ConsumersIamMemberCondition

type ConsumersIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type ConsumersIamMemberConditionArgs

type ConsumersIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (ConsumersIamMemberConditionArgs) ElementType

func (ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionOutput

func (i ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionOutput() ConsumersIamMemberConditionOutput

func (ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionOutputWithContext

func (i ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionOutputWithContext(ctx context.Context) ConsumersIamMemberConditionOutput

func (ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionPtrOutput

func (i ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionPtrOutput() ConsumersIamMemberConditionPtrOutput

func (ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionPtrOutputWithContext

func (i ConsumersIamMemberConditionArgs) ToConsumersIamMemberConditionPtrOutputWithContext(ctx context.Context) ConsumersIamMemberConditionPtrOutput

type ConsumersIamMemberConditionInput

type ConsumersIamMemberConditionInput interface {
	pulumi.Input

	ToConsumersIamMemberConditionOutput() ConsumersIamMemberConditionOutput
	ToConsumersIamMemberConditionOutputWithContext(context.Context) ConsumersIamMemberConditionOutput
}

ConsumersIamMemberConditionInput is an input type that accepts ConsumersIamMemberConditionArgs and ConsumersIamMemberConditionOutput values. You can construct a concrete instance of `ConsumersIamMemberConditionInput` via:

ConsumersIamMemberConditionArgs{...}

type ConsumersIamMemberConditionOutput

type ConsumersIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ConsumersIamMemberConditionOutput) Description

func (ConsumersIamMemberConditionOutput) ElementType

func (ConsumersIamMemberConditionOutput) Expression

func (ConsumersIamMemberConditionOutput) Title

func (ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionOutput

func (o ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionOutput() ConsumersIamMemberConditionOutput

func (ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionOutputWithContext

func (o ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionOutputWithContext(ctx context.Context) ConsumersIamMemberConditionOutput

func (ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionPtrOutput

func (o ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionPtrOutput() ConsumersIamMemberConditionPtrOutput

func (ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionPtrOutputWithContext

func (o ConsumersIamMemberConditionOutput) ToConsumersIamMemberConditionPtrOutputWithContext(ctx context.Context) ConsumersIamMemberConditionPtrOutput

type ConsumersIamMemberConditionPtrInput

type ConsumersIamMemberConditionPtrInput interface {
	pulumi.Input

	ToConsumersIamMemberConditionPtrOutput() ConsumersIamMemberConditionPtrOutput
	ToConsumersIamMemberConditionPtrOutputWithContext(context.Context) ConsumersIamMemberConditionPtrOutput
}

ConsumersIamMemberConditionPtrInput is an input type that accepts ConsumersIamMemberConditionArgs, ConsumersIamMemberConditionPtr and ConsumersIamMemberConditionPtrOutput values. You can construct a concrete instance of `ConsumersIamMemberConditionPtrInput` via:

        ConsumersIamMemberConditionArgs{...}

or:

        nil

type ConsumersIamMemberConditionPtrOutput

type ConsumersIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ConsumersIamMemberConditionPtrOutput) Description

func (ConsumersIamMemberConditionPtrOutput) Elem

func (ConsumersIamMemberConditionPtrOutput) ElementType

func (ConsumersIamMemberConditionPtrOutput) Expression

func (ConsumersIamMemberConditionPtrOutput) Title

func (ConsumersIamMemberConditionPtrOutput) ToConsumersIamMemberConditionPtrOutput

func (o ConsumersIamMemberConditionPtrOutput) ToConsumersIamMemberConditionPtrOutput() ConsumersIamMemberConditionPtrOutput

func (ConsumersIamMemberConditionPtrOutput) ToConsumersIamMemberConditionPtrOutputWithContext

func (o ConsumersIamMemberConditionPtrOutput) ToConsumersIamMemberConditionPtrOutputWithContext(ctx context.Context) ConsumersIamMemberConditionPtrOutput

type ConsumersIamMemberInput

type ConsumersIamMemberInput interface {
	pulumi.Input

	ToConsumersIamMemberOutput() ConsumersIamMemberOutput
	ToConsumersIamMemberOutputWithContext(ctx context.Context) ConsumersIamMemberOutput
}

type ConsumersIamMemberMap

type ConsumersIamMemberMap map[string]ConsumersIamMemberInput

func (ConsumersIamMemberMap) ElementType

func (ConsumersIamMemberMap) ElementType() reflect.Type

func (ConsumersIamMemberMap) ToConsumersIamMemberMapOutput

func (i ConsumersIamMemberMap) ToConsumersIamMemberMapOutput() ConsumersIamMemberMapOutput

func (ConsumersIamMemberMap) ToConsumersIamMemberMapOutputWithContext

func (i ConsumersIamMemberMap) ToConsumersIamMemberMapOutputWithContext(ctx context.Context) ConsumersIamMemberMapOutput

type ConsumersIamMemberMapInput

type ConsumersIamMemberMapInput interface {
	pulumi.Input

	ToConsumersIamMemberMapOutput() ConsumersIamMemberMapOutput
	ToConsumersIamMemberMapOutputWithContext(context.Context) ConsumersIamMemberMapOutput
}

ConsumersIamMemberMapInput is an input type that accepts ConsumersIamMemberMap and ConsumersIamMemberMapOutput values. You can construct a concrete instance of `ConsumersIamMemberMapInput` via:

ConsumersIamMemberMap{ "key": ConsumersIamMemberArgs{...} }

type ConsumersIamMemberMapOutput

type ConsumersIamMemberMapOutput struct{ *pulumi.OutputState }

func (ConsumersIamMemberMapOutput) ElementType

func (ConsumersIamMemberMapOutput) MapIndex

func (ConsumersIamMemberMapOutput) ToConsumersIamMemberMapOutput

func (o ConsumersIamMemberMapOutput) ToConsumersIamMemberMapOutput() ConsumersIamMemberMapOutput

func (ConsumersIamMemberMapOutput) ToConsumersIamMemberMapOutputWithContext

func (o ConsumersIamMemberMapOutput) ToConsumersIamMemberMapOutputWithContext(ctx context.Context) ConsumersIamMemberMapOutput

type ConsumersIamMemberOutput

type ConsumersIamMemberOutput struct{ *pulumi.OutputState }

func (ConsumersIamMemberOutput) Condition

func (ConsumersIamMemberOutput) ConsumerProject

func (o ConsumersIamMemberOutput) ConsumerProject() pulumi.StringOutput

func (ConsumersIamMemberOutput) ElementType

func (ConsumersIamMemberOutput) ElementType() reflect.Type

func (ConsumersIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (ConsumersIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (ConsumersIamMemberOutput) Role

The role that should be applied. Only one `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (ConsumersIamMemberOutput) ServiceName

func (ConsumersIamMemberOutput) ToConsumersIamMemberOutput

func (o ConsumersIamMemberOutput) ToConsumersIamMemberOutput() ConsumersIamMemberOutput

func (ConsumersIamMemberOutput) ToConsumersIamMemberOutputWithContext

func (o ConsumersIamMemberOutput) ToConsumersIamMemberOutputWithContext(ctx context.Context) ConsumersIamMemberOutput

type ConsumersIamMemberState

type ConsumersIamMemberState struct {
	Condition       ConsumersIamMemberConditionPtrInput
	ConsumerProject pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `endpoints.ConsumersIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ConsumersIamMemberState) ElementType

func (ConsumersIamMemberState) ElementType() reflect.Type

type ConsumersIamPolicy

type ConsumersIamPolicy struct {
	pulumi.CustomResourceState

	ConsumerProject pulumi.StringOutput `pulumi:"consumerProject"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringOutput `pulumi:"policyData"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints ServiceConsumers. Each of these resources serves a different use case:

* `endpoints.ConsumersIamPolicy`: Authoritative. Sets the IAM policy for the serviceconsumers and replaces any existing policy already attached. * `endpoints.ConsumersIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the serviceconsumers are preserved. * `endpoints.ConsumersIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the serviceconsumers are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ConsumersIamPolicy`: Retrieves the IAM policy for the serviceconsumers

> **Note:** `endpoints.ConsumersIamPolicy` **cannot** be used in conjunction with `endpoints.ConsumersIamBinding` and `endpoints.ConsumersIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ConsumersIamBinding` resources **can be** used in conjunction with `endpoints.ConsumersIamMember` resources **only if** they do not grant privilege to the same role.

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}/consumers/{{consumer_project}}

* {{service_name}}/{{consumer_project}}

* {{consumer_project}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints serviceconsumers IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy editor "services/{{service_name}}/consumers/{{consumer_project}} roles/servicemanagement.serviceController" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy editor services/{{service_name}}/consumers/{{consumer_project}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetConsumersIamPolicy

func GetConsumersIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConsumersIamPolicyState, opts ...pulumi.ResourceOption) (*ConsumersIamPolicy, error)

GetConsumersIamPolicy gets an existing ConsumersIamPolicy 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 NewConsumersIamPolicy

func NewConsumersIamPolicy(ctx *pulumi.Context,
	name string, args *ConsumersIamPolicyArgs, opts ...pulumi.ResourceOption) (*ConsumersIamPolicy, error)

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

func (*ConsumersIamPolicy) ElementType

func (*ConsumersIamPolicy) ElementType() reflect.Type

func (*ConsumersIamPolicy) ToConsumersIamPolicyOutput

func (i *ConsumersIamPolicy) ToConsumersIamPolicyOutput() ConsumersIamPolicyOutput

func (*ConsumersIamPolicy) ToConsumersIamPolicyOutputWithContext

func (i *ConsumersIamPolicy) ToConsumersIamPolicyOutputWithContext(ctx context.Context) ConsumersIamPolicyOutput

type ConsumersIamPolicyArgs

type ConsumersIamPolicyArgs struct {
	ConsumerProject pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ConsumersIamPolicy resource.

func (ConsumersIamPolicyArgs) ElementType

func (ConsumersIamPolicyArgs) ElementType() reflect.Type

type ConsumersIamPolicyArray

type ConsumersIamPolicyArray []ConsumersIamPolicyInput

func (ConsumersIamPolicyArray) ElementType

func (ConsumersIamPolicyArray) ElementType() reflect.Type

func (ConsumersIamPolicyArray) ToConsumersIamPolicyArrayOutput

func (i ConsumersIamPolicyArray) ToConsumersIamPolicyArrayOutput() ConsumersIamPolicyArrayOutput

func (ConsumersIamPolicyArray) ToConsumersIamPolicyArrayOutputWithContext

func (i ConsumersIamPolicyArray) ToConsumersIamPolicyArrayOutputWithContext(ctx context.Context) ConsumersIamPolicyArrayOutput

type ConsumersIamPolicyArrayInput

type ConsumersIamPolicyArrayInput interface {
	pulumi.Input

	ToConsumersIamPolicyArrayOutput() ConsumersIamPolicyArrayOutput
	ToConsumersIamPolicyArrayOutputWithContext(context.Context) ConsumersIamPolicyArrayOutput
}

ConsumersIamPolicyArrayInput is an input type that accepts ConsumersIamPolicyArray and ConsumersIamPolicyArrayOutput values. You can construct a concrete instance of `ConsumersIamPolicyArrayInput` via:

ConsumersIamPolicyArray{ ConsumersIamPolicyArgs{...} }

type ConsumersIamPolicyArrayOutput

type ConsumersIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ConsumersIamPolicyArrayOutput) ElementType

func (ConsumersIamPolicyArrayOutput) Index

func (ConsumersIamPolicyArrayOutput) ToConsumersIamPolicyArrayOutput

func (o ConsumersIamPolicyArrayOutput) ToConsumersIamPolicyArrayOutput() ConsumersIamPolicyArrayOutput

func (ConsumersIamPolicyArrayOutput) ToConsumersIamPolicyArrayOutputWithContext

func (o ConsumersIamPolicyArrayOutput) ToConsumersIamPolicyArrayOutputWithContext(ctx context.Context) ConsumersIamPolicyArrayOutput

type ConsumersIamPolicyInput

type ConsumersIamPolicyInput interface {
	pulumi.Input

	ToConsumersIamPolicyOutput() ConsumersIamPolicyOutput
	ToConsumersIamPolicyOutputWithContext(ctx context.Context) ConsumersIamPolicyOutput
}

type ConsumersIamPolicyMap

type ConsumersIamPolicyMap map[string]ConsumersIamPolicyInput

func (ConsumersIamPolicyMap) ElementType

func (ConsumersIamPolicyMap) ElementType() reflect.Type

func (ConsumersIamPolicyMap) ToConsumersIamPolicyMapOutput

func (i ConsumersIamPolicyMap) ToConsumersIamPolicyMapOutput() ConsumersIamPolicyMapOutput

func (ConsumersIamPolicyMap) ToConsumersIamPolicyMapOutputWithContext

func (i ConsumersIamPolicyMap) ToConsumersIamPolicyMapOutputWithContext(ctx context.Context) ConsumersIamPolicyMapOutput

type ConsumersIamPolicyMapInput

type ConsumersIamPolicyMapInput interface {
	pulumi.Input

	ToConsumersIamPolicyMapOutput() ConsumersIamPolicyMapOutput
	ToConsumersIamPolicyMapOutputWithContext(context.Context) ConsumersIamPolicyMapOutput
}

ConsumersIamPolicyMapInput is an input type that accepts ConsumersIamPolicyMap and ConsumersIamPolicyMapOutput values. You can construct a concrete instance of `ConsumersIamPolicyMapInput` via:

ConsumersIamPolicyMap{ "key": ConsumersIamPolicyArgs{...} }

type ConsumersIamPolicyMapOutput

type ConsumersIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ConsumersIamPolicyMapOutput) ElementType

func (ConsumersIamPolicyMapOutput) MapIndex

func (ConsumersIamPolicyMapOutput) ToConsumersIamPolicyMapOutput

func (o ConsumersIamPolicyMapOutput) ToConsumersIamPolicyMapOutput() ConsumersIamPolicyMapOutput

func (ConsumersIamPolicyMapOutput) ToConsumersIamPolicyMapOutputWithContext

func (o ConsumersIamPolicyMapOutput) ToConsumersIamPolicyMapOutputWithContext(ctx context.Context) ConsumersIamPolicyMapOutput

type ConsumersIamPolicyOutput

type ConsumersIamPolicyOutput struct{ *pulumi.OutputState }

func (ConsumersIamPolicyOutput) ConsumerProject

func (o ConsumersIamPolicyOutput) ConsumerProject() pulumi.StringOutput

func (ConsumersIamPolicyOutput) ElementType

func (ConsumersIamPolicyOutput) ElementType() reflect.Type

func (ConsumersIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (ConsumersIamPolicyOutput) PolicyData

The policy data generated by a `organizations.getIAMPolicy` data source.

func (ConsumersIamPolicyOutput) ServiceName

func (ConsumersIamPolicyOutput) ToConsumersIamPolicyOutput

func (o ConsumersIamPolicyOutput) ToConsumersIamPolicyOutput() ConsumersIamPolicyOutput

func (ConsumersIamPolicyOutput) ToConsumersIamPolicyOutputWithContext

func (o ConsumersIamPolicyOutput) ToConsumersIamPolicyOutputWithContext(ctx context.Context) ConsumersIamPolicyOutput

type ConsumersIamPolicyState

type ConsumersIamPolicyState struct {
	ConsumerProject pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ConsumersIamPolicyState) ElementType

func (ConsumersIamPolicyState) ElementType() reflect.Type

type GetServiceConsumersIamPolicyArgs

type GetServiceConsumersIamPolicyArgs struct {
	ConsumerProject string `pulumi:"consumerProject"`
	ServiceName     string `pulumi:"serviceName"`
}

A collection of arguments for invoking getServiceConsumersIamPolicy.

type GetServiceConsumersIamPolicyOutputArgs

type GetServiceConsumersIamPolicyOutputArgs struct {
	ConsumerProject pulumi.StringInput `pulumi:"consumerProject"`
	ServiceName     pulumi.StringInput `pulumi:"serviceName"`
}

A collection of arguments for invoking getServiceConsumersIamPolicy.

func (GetServiceConsumersIamPolicyOutputArgs) ElementType

type GetServiceConsumersIamPolicyResult

type GetServiceConsumersIamPolicyResult struct {
	ConsumerProject string `pulumi:"consumerProject"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `endpoints.ConsumersIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  string `pulumi:"policyData"`
	ServiceName string `pulumi:"serviceName"`
}

A collection of values returned by getServiceConsumersIamPolicy.

func GetServiceConsumersIamPolicy

func GetServiceConsumersIamPolicy(ctx *pulumi.Context, args *GetServiceConsumersIamPolicyArgs, opts ...pulumi.InvokeOption) (*GetServiceConsumersIamPolicyResult, error)

Retrieves the current IAM policy data for serviceconsumers

type GetServiceConsumersIamPolicyResultOutput

type GetServiceConsumersIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getServiceConsumersIamPolicy.

func (GetServiceConsumersIamPolicyResultOutput) ConsumerProject

func (GetServiceConsumersIamPolicyResultOutput) ElementType

func (GetServiceConsumersIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (GetServiceConsumersIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetServiceConsumersIamPolicyResultOutput) PolicyData

(Required only by `endpoints.ConsumersIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (GetServiceConsumersIamPolicyResultOutput) ServiceName

func (GetServiceConsumersIamPolicyResultOutput) ToGetServiceConsumersIamPolicyResultOutput

func (o GetServiceConsumersIamPolicyResultOutput) ToGetServiceConsumersIamPolicyResultOutput() GetServiceConsumersIamPolicyResultOutput

func (GetServiceConsumersIamPolicyResultOutput) ToGetServiceConsumersIamPolicyResultOutputWithContext

func (o GetServiceConsumersIamPolicyResultOutput) ToGetServiceConsumersIamPolicyResultOutputWithContext(ctx context.Context) GetServiceConsumersIamPolicyResultOutput

type LookupServiceIamPolicyArgs

type LookupServiceIamPolicyArgs struct {
	ServiceName string `pulumi:"serviceName"`
}

A collection of arguments for invoking getServiceIamPolicy.

type LookupServiceIamPolicyOutputArgs

type LookupServiceIamPolicyOutputArgs struct {
	ServiceName pulumi.StringInput `pulumi:"serviceName"`
}

A collection of arguments for invoking getServiceIamPolicy.

func (LookupServiceIamPolicyOutputArgs) ElementType

type LookupServiceIamPolicyResult

type LookupServiceIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `endpoints.ServiceIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  string `pulumi:"policyData"`
	ServiceName string `pulumi:"serviceName"`
}

A collection of values returned by getServiceIamPolicy.

func LookupServiceIamPolicy

func LookupServiceIamPolicy(ctx *pulumi.Context, args *LookupServiceIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupServiceIamPolicyResult, error)

Retrieves the current IAM policy data for service

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.LookupServiceIamPolicy(ctx, &endpoints.LookupServiceIamPolicyArgs{
			ServiceName: endpointsService.ServiceName,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupServiceIamPolicyResultOutput

type LookupServiceIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getServiceIamPolicy.

func (LookupServiceIamPolicyResultOutput) ElementType

func (LookupServiceIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (LookupServiceIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupServiceIamPolicyResultOutput) PolicyData

(Required only by `endpoints.ServiceIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupServiceIamPolicyResultOutput) ServiceName

func (LookupServiceIamPolicyResultOutput) ToLookupServiceIamPolicyResultOutput

func (o LookupServiceIamPolicyResultOutput) ToLookupServiceIamPolicyResultOutput() LookupServiceIamPolicyResultOutput

func (LookupServiceIamPolicyResultOutput) ToLookupServiceIamPolicyResultOutputWithContext

func (o LookupServiceIamPolicyResultOutput) ToLookupServiceIamPolicyResultOutputWithContext(ctx context.Context) LookupServiceIamPolicyResultOutput

type Service

type Service struct {
	pulumi.CustomResourceState

	// A list of API objects; structure is documented below.
	Apis ServiceApiArrayOutput `pulumi:"apis"`
	// The autogenerated ID for the configuration that is rolled out as part of the creation of this resource.  Must be provided to compute engine instances as a tag.
	ConfigId pulumi.StringOutput `pulumi:"configId"`
	// The address at which the service can be found - usually the same as the service name.
	DnsAddress pulumi.StringOutput `pulumi:"dnsAddress"`
	// A list of Endpoint objects; structure is documented below.
	Endpoints ServiceEndpointArrayOutput `pulumi:"endpoints"`
	// The full text of the Service Config YAML file (Example located [here](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/endpoints/bookstore-grpc/api_config.yaml)).
	// If provided, must also provide `protocOutputBase64`.  `openApi` config must *not* be provided.
	GrpcConfig pulumi.StringPtrOutput `pulumi:"grpcConfig"`
	// The full text of the OpenAPI YAML configuration as described [here](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md).
	// Either this, or *both* of `grpcConfig` and `protocOutputBase64` must be specified.
	OpenapiConfig pulumi.StringPtrOutput `pulumi:"openapiConfig"`
	// The project ID that the service belongs to.  If not provided, provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The full contents of the Service Descriptor File generated by protoc.  This should be a compiled .pb file, base64-encoded.
	ProtocOutputBase64 pulumi.StringPtrOutput `pulumi:"protocOutputBase64"`
	// The name of the service.  Usually of the form `$apiname.endpoints.$projectid.cloud.goog`.
	//
	// ***
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for [OpenAPI](https://cloud.google.com/endpoints/docs/openapi/) and [gRPC](https://cloud.google.com/endpoints/docs/grpc/).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "openapi_spec.yml",
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewService(ctx, "openapi_service", &endpoints.ServiceArgs{
			ServiceName:   pulumi.String("api-name.endpoints.project-id.cloud.goog"),
			Project:       pulumi.String("project-id"),
			OpenapiConfig: invokeFile.Result,
		})
		if err != nil {
			return err
		}
		invokeFile1, err := std.File(ctx, &std.FileArgs{
			Input: "service_spec.yml",
		}, nil)
		if err != nil {
			return err
		}
		invokeFilebase642, err := std.Filebase64(ctx, &std.Filebase64Args{
			Input: "compiled_descriptor_file.pb",
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewService(ctx, "grpc_service", &endpoints.ServiceArgs{
			ServiceName:        pulumi.String("api-name.endpoints.project-id.cloud.goog"),
			Project:            pulumi.String("project-id"),
			GrpcConfig:         invokeFile1.Result,
			ProtocOutputBase64: invokeFilebase642.Result,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

The example in `examples/endpoints_on_compute_engine` shows the API from the quickstart running on a Compute Engine VM and reachable through Cloud Endpoints, which may also be useful.

## Import

This resource does not support import.

func GetService

func GetService(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceState, opts ...pulumi.ResourceOption) (*Service, error)

GetService gets an existing Service 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 NewService

func NewService(ctx *pulumi.Context,
	name string, args *ServiceArgs, opts ...pulumi.ResourceOption) (*Service, error)

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

func (*Service) ElementType

func (*Service) ElementType() reflect.Type

func (*Service) ToServiceOutput

func (i *Service) ToServiceOutput() ServiceOutput

func (*Service) ToServiceOutputWithContext

func (i *Service) ToServiceOutputWithContext(ctx context.Context) ServiceOutput

type ServiceApi

type ServiceApi struct {
	// A list of Method objects; structure is documented below.
	Methods []ServiceApiMethod `pulumi:"methods"`
	// The simple name of the endpoint as described in the config.
	Name *string `pulumi:"name"`
	// `SYNTAX_PROTO2` or `SYNTAX_PROTO3`.
	Syntax *string `pulumi:"syntax"`
	// A version string for this api. If specified, will have the form major-version.minor-version, e.g. `1.10`.
	Version *string `pulumi:"version"`
}

type ServiceApiArgs

type ServiceApiArgs struct {
	// A list of Method objects; structure is documented below.
	Methods ServiceApiMethodArrayInput `pulumi:"methods"`
	// The simple name of the endpoint as described in the config.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// `SYNTAX_PROTO2` or `SYNTAX_PROTO3`.
	Syntax pulumi.StringPtrInput `pulumi:"syntax"`
	// A version string for this api. If specified, will have the form major-version.minor-version, e.g. `1.10`.
	Version pulumi.StringPtrInput `pulumi:"version"`
}

func (ServiceApiArgs) ElementType

func (ServiceApiArgs) ElementType() reflect.Type

func (ServiceApiArgs) ToServiceApiOutput

func (i ServiceApiArgs) ToServiceApiOutput() ServiceApiOutput

func (ServiceApiArgs) ToServiceApiOutputWithContext

func (i ServiceApiArgs) ToServiceApiOutputWithContext(ctx context.Context) ServiceApiOutput

type ServiceApiArray

type ServiceApiArray []ServiceApiInput

func (ServiceApiArray) ElementType

func (ServiceApiArray) ElementType() reflect.Type

func (ServiceApiArray) ToServiceApiArrayOutput

func (i ServiceApiArray) ToServiceApiArrayOutput() ServiceApiArrayOutput

func (ServiceApiArray) ToServiceApiArrayOutputWithContext

func (i ServiceApiArray) ToServiceApiArrayOutputWithContext(ctx context.Context) ServiceApiArrayOutput

type ServiceApiArrayInput

type ServiceApiArrayInput interface {
	pulumi.Input

	ToServiceApiArrayOutput() ServiceApiArrayOutput
	ToServiceApiArrayOutputWithContext(context.Context) ServiceApiArrayOutput
}

ServiceApiArrayInput is an input type that accepts ServiceApiArray and ServiceApiArrayOutput values. You can construct a concrete instance of `ServiceApiArrayInput` via:

ServiceApiArray{ ServiceApiArgs{...} }

type ServiceApiArrayOutput

type ServiceApiArrayOutput struct{ *pulumi.OutputState }

func (ServiceApiArrayOutput) ElementType

func (ServiceApiArrayOutput) ElementType() reflect.Type

func (ServiceApiArrayOutput) Index

func (ServiceApiArrayOutput) ToServiceApiArrayOutput

func (o ServiceApiArrayOutput) ToServiceApiArrayOutput() ServiceApiArrayOutput

func (ServiceApiArrayOutput) ToServiceApiArrayOutputWithContext

func (o ServiceApiArrayOutput) ToServiceApiArrayOutputWithContext(ctx context.Context) ServiceApiArrayOutput

type ServiceApiInput

type ServiceApiInput interface {
	pulumi.Input

	ToServiceApiOutput() ServiceApiOutput
	ToServiceApiOutputWithContext(context.Context) ServiceApiOutput
}

ServiceApiInput is an input type that accepts ServiceApiArgs and ServiceApiOutput values. You can construct a concrete instance of `ServiceApiInput` via:

ServiceApiArgs{...}

type ServiceApiMethod

type ServiceApiMethod struct {
	// The simple name of the endpoint as described in the config.
	Name *string `pulumi:"name"`
	// The type URL for the request to this API.
	RequestType *string `pulumi:"requestType"`
	// The type URL for the response from this API.
	ResponseType *string `pulumi:"responseType"`
	// `SYNTAX_PROTO2` or `SYNTAX_PROTO3`.
	Syntax *string `pulumi:"syntax"`
}

type ServiceApiMethodArgs

type ServiceApiMethodArgs struct {
	// The simple name of the endpoint as described in the config.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The type URL for the request to this API.
	RequestType pulumi.StringPtrInput `pulumi:"requestType"`
	// The type URL for the response from this API.
	ResponseType pulumi.StringPtrInput `pulumi:"responseType"`
	// `SYNTAX_PROTO2` or `SYNTAX_PROTO3`.
	Syntax pulumi.StringPtrInput `pulumi:"syntax"`
}

func (ServiceApiMethodArgs) ElementType

func (ServiceApiMethodArgs) ElementType() reflect.Type

func (ServiceApiMethodArgs) ToServiceApiMethodOutput

func (i ServiceApiMethodArgs) ToServiceApiMethodOutput() ServiceApiMethodOutput

func (ServiceApiMethodArgs) ToServiceApiMethodOutputWithContext

func (i ServiceApiMethodArgs) ToServiceApiMethodOutputWithContext(ctx context.Context) ServiceApiMethodOutput

type ServiceApiMethodArray

type ServiceApiMethodArray []ServiceApiMethodInput

func (ServiceApiMethodArray) ElementType

func (ServiceApiMethodArray) ElementType() reflect.Type

func (ServiceApiMethodArray) ToServiceApiMethodArrayOutput

func (i ServiceApiMethodArray) ToServiceApiMethodArrayOutput() ServiceApiMethodArrayOutput

func (ServiceApiMethodArray) ToServiceApiMethodArrayOutputWithContext

func (i ServiceApiMethodArray) ToServiceApiMethodArrayOutputWithContext(ctx context.Context) ServiceApiMethodArrayOutput

type ServiceApiMethodArrayInput

type ServiceApiMethodArrayInput interface {
	pulumi.Input

	ToServiceApiMethodArrayOutput() ServiceApiMethodArrayOutput
	ToServiceApiMethodArrayOutputWithContext(context.Context) ServiceApiMethodArrayOutput
}

ServiceApiMethodArrayInput is an input type that accepts ServiceApiMethodArray and ServiceApiMethodArrayOutput values. You can construct a concrete instance of `ServiceApiMethodArrayInput` via:

ServiceApiMethodArray{ ServiceApiMethodArgs{...} }

type ServiceApiMethodArrayOutput

type ServiceApiMethodArrayOutput struct{ *pulumi.OutputState }

func (ServiceApiMethodArrayOutput) ElementType

func (ServiceApiMethodArrayOutput) Index

func (ServiceApiMethodArrayOutput) ToServiceApiMethodArrayOutput

func (o ServiceApiMethodArrayOutput) ToServiceApiMethodArrayOutput() ServiceApiMethodArrayOutput

func (ServiceApiMethodArrayOutput) ToServiceApiMethodArrayOutputWithContext

func (o ServiceApiMethodArrayOutput) ToServiceApiMethodArrayOutputWithContext(ctx context.Context) ServiceApiMethodArrayOutput

type ServiceApiMethodInput

type ServiceApiMethodInput interface {
	pulumi.Input

	ToServiceApiMethodOutput() ServiceApiMethodOutput
	ToServiceApiMethodOutputWithContext(context.Context) ServiceApiMethodOutput
}

ServiceApiMethodInput is an input type that accepts ServiceApiMethodArgs and ServiceApiMethodOutput values. You can construct a concrete instance of `ServiceApiMethodInput` via:

ServiceApiMethodArgs{...}

type ServiceApiMethodOutput

type ServiceApiMethodOutput struct{ *pulumi.OutputState }

func (ServiceApiMethodOutput) ElementType

func (ServiceApiMethodOutput) ElementType() reflect.Type

func (ServiceApiMethodOutput) Name

The simple name of the endpoint as described in the config.

func (ServiceApiMethodOutput) RequestType

The type URL for the request to this API.

func (ServiceApiMethodOutput) ResponseType

The type URL for the response from this API.

func (ServiceApiMethodOutput) Syntax

`SYNTAX_PROTO2` or `SYNTAX_PROTO3`.

func (ServiceApiMethodOutput) ToServiceApiMethodOutput

func (o ServiceApiMethodOutput) ToServiceApiMethodOutput() ServiceApiMethodOutput

func (ServiceApiMethodOutput) ToServiceApiMethodOutputWithContext

func (o ServiceApiMethodOutput) ToServiceApiMethodOutputWithContext(ctx context.Context) ServiceApiMethodOutput

type ServiceApiOutput

type ServiceApiOutput struct{ *pulumi.OutputState }

func (ServiceApiOutput) ElementType

func (ServiceApiOutput) ElementType() reflect.Type

func (ServiceApiOutput) Methods

A list of Method objects; structure is documented below.

func (ServiceApiOutput) Name

The simple name of the endpoint as described in the config.

func (ServiceApiOutput) Syntax

`SYNTAX_PROTO2` or `SYNTAX_PROTO3`.

func (ServiceApiOutput) ToServiceApiOutput

func (o ServiceApiOutput) ToServiceApiOutput() ServiceApiOutput

func (ServiceApiOutput) ToServiceApiOutputWithContext

func (o ServiceApiOutput) ToServiceApiOutputWithContext(ctx context.Context) ServiceApiOutput

func (ServiceApiOutput) Version

A version string for this api. If specified, will have the form major-version.minor-version, e.g. `1.10`.

type ServiceArgs

type ServiceArgs struct {
	// The full text of the Service Config YAML file (Example located [here](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/endpoints/bookstore-grpc/api_config.yaml)).
	// If provided, must also provide `protocOutputBase64`.  `openApi` config must *not* be provided.
	GrpcConfig pulumi.StringPtrInput
	// The full text of the OpenAPI YAML configuration as described [here](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md).
	// Either this, or *both* of `grpcConfig` and `protocOutputBase64` must be specified.
	OpenapiConfig pulumi.StringPtrInput
	// The project ID that the service belongs to.  If not provided, provider project is used.
	Project pulumi.StringPtrInput
	// The full contents of the Service Descriptor File generated by protoc.  This should be a compiled .pb file, base64-encoded.
	ProtocOutputBase64 pulumi.StringPtrInput
	// The name of the service.  Usually of the form `$apiname.endpoints.$projectid.cloud.goog`.
	//
	// ***
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a Service resource.

func (ServiceArgs) ElementType

func (ServiceArgs) ElementType() reflect.Type

type ServiceArray

type ServiceArray []ServiceInput

func (ServiceArray) ElementType

func (ServiceArray) ElementType() reflect.Type

func (ServiceArray) ToServiceArrayOutput

func (i ServiceArray) ToServiceArrayOutput() ServiceArrayOutput

func (ServiceArray) ToServiceArrayOutputWithContext

func (i ServiceArray) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput

type ServiceArrayInput

type ServiceArrayInput interface {
	pulumi.Input

	ToServiceArrayOutput() ServiceArrayOutput
	ToServiceArrayOutputWithContext(context.Context) ServiceArrayOutput
}

ServiceArrayInput is an input type that accepts ServiceArray and ServiceArrayOutput values. You can construct a concrete instance of `ServiceArrayInput` via:

ServiceArray{ ServiceArgs{...} }

type ServiceArrayOutput

type ServiceArrayOutput struct{ *pulumi.OutputState }

func (ServiceArrayOutput) ElementType

func (ServiceArrayOutput) ElementType() reflect.Type

func (ServiceArrayOutput) Index

func (ServiceArrayOutput) ToServiceArrayOutput

func (o ServiceArrayOutput) ToServiceArrayOutput() ServiceArrayOutput

func (ServiceArrayOutput) ToServiceArrayOutputWithContext

func (o ServiceArrayOutput) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput

type ServiceEndpoint

type ServiceEndpoint struct {
	// The FQDN of the endpoint as described in the config.
	Address *string `pulumi:"address"`
	// The simple name of the endpoint as described in the config.
	Name *string `pulumi:"name"`
}

type ServiceEndpointArgs

type ServiceEndpointArgs struct {
	// The FQDN of the endpoint as described in the config.
	Address pulumi.StringPtrInput `pulumi:"address"`
	// The simple name of the endpoint as described in the config.
	Name pulumi.StringPtrInput `pulumi:"name"`
}

func (ServiceEndpointArgs) ElementType

func (ServiceEndpointArgs) ElementType() reflect.Type

func (ServiceEndpointArgs) ToServiceEndpointOutput

func (i ServiceEndpointArgs) ToServiceEndpointOutput() ServiceEndpointOutput

func (ServiceEndpointArgs) ToServiceEndpointOutputWithContext

func (i ServiceEndpointArgs) ToServiceEndpointOutputWithContext(ctx context.Context) ServiceEndpointOutput

type ServiceEndpointArray

type ServiceEndpointArray []ServiceEndpointInput

func (ServiceEndpointArray) ElementType

func (ServiceEndpointArray) ElementType() reflect.Type

func (ServiceEndpointArray) ToServiceEndpointArrayOutput

func (i ServiceEndpointArray) ToServiceEndpointArrayOutput() ServiceEndpointArrayOutput

func (ServiceEndpointArray) ToServiceEndpointArrayOutputWithContext

func (i ServiceEndpointArray) ToServiceEndpointArrayOutputWithContext(ctx context.Context) ServiceEndpointArrayOutput

type ServiceEndpointArrayInput

type ServiceEndpointArrayInput interface {
	pulumi.Input

	ToServiceEndpointArrayOutput() ServiceEndpointArrayOutput
	ToServiceEndpointArrayOutputWithContext(context.Context) ServiceEndpointArrayOutput
}

ServiceEndpointArrayInput is an input type that accepts ServiceEndpointArray and ServiceEndpointArrayOutput values. You can construct a concrete instance of `ServiceEndpointArrayInput` via:

ServiceEndpointArray{ ServiceEndpointArgs{...} }

type ServiceEndpointArrayOutput

type ServiceEndpointArrayOutput struct{ *pulumi.OutputState }

func (ServiceEndpointArrayOutput) ElementType

func (ServiceEndpointArrayOutput) ElementType() reflect.Type

func (ServiceEndpointArrayOutput) Index

func (ServiceEndpointArrayOutput) ToServiceEndpointArrayOutput

func (o ServiceEndpointArrayOutput) ToServiceEndpointArrayOutput() ServiceEndpointArrayOutput

func (ServiceEndpointArrayOutput) ToServiceEndpointArrayOutputWithContext

func (o ServiceEndpointArrayOutput) ToServiceEndpointArrayOutputWithContext(ctx context.Context) ServiceEndpointArrayOutput

type ServiceEndpointInput

type ServiceEndpointInput interface {
	pulumi.Input

	ToServiceEndpointOutput() ServiceEndpointOutput
	ToServiceEndpointOutputWithContext(context.Context) ServiceEndpointOutput
}

ServiceEndpointInput is an input type that accepts ServiceEndpointArgs and ServiceEndpointOutput values. You can construct a concrete instance of `ServiceEndpointInput` via:

ServiceEndpointArgs{...}

type ServiceEndpointOutput

type ServiceEndpointOutput struct{ *pulumi.OutputState }

func (ServiceEndpointOutput) Address

The FQDN of the endpoint as described in the config.

func (ServiceEndpointOutput) ElementType

func (ServiceEndpointOutput) ElementType() reflect.Type

func (ServiceEndpointOutput) Name

The simple name of the endpoint as described in the config.

func (ServiceEndpointOutput) ToServiceEndpointOutput

func (o ServiceEndpointOutput) ToServiceEndpointOutput() ServiceEndpointOutput

func (ServiceEndpointOutput) ToServiceEndpointOutputWithContext

func (o ServiceEndpointOutput) ToServiceEndpointOutputWithContext(ctx context.Context) ServiceEndpointOutput

type ServiceIamBinding

type ServiceIamBinding struct {
	pulumi.CustomResourceState

	Condition ServiceIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringOutput `pulumi:"role"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints Service. Each of these resources serves a different use case:

* `endpoints.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `endpoints.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `endpoints.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ServiceIamPolicy`: Retrieves the IAM policy for the service

> **Note:** `endpoints.ServiceIamPolicy` **cannot** be used in conjunction with `endpoints.ServiceIamBinding` and `endpoints.ServiceIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ServiceIamBinding` resources **can be** used in conjunction with `endpoints.ServiceIamMember` resources **only if** they do not grant privilege to the same role.

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}

* {{service_name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints service IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamBinding:ServiceIamBinding editor "services/{{service_name}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamBinding:ServiceIamBinding editor "services/{{service_name}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamBinding:ServiceIamBinding editor services/{{service_name}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetServiceIamBinding

func GetServiceIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceIamBindingState, opts ...pulumi.ResourceOption) (*ServiceIamBinding, error)

GetServiceIamBinding gets an existing ServiceIamBinding 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 NewServiceIamBinding

func NewServiceIamBinding(ctx *pulumi.Context,
	name string, args *ServiceIamBindingArgs, opts ...pulumi.ResourceOption) (*ServiceIamBinding, error)

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

func (*ServiceIamBinding) ElementType

func (*ServiceIamBinding) ElementType() reflect.Type

func (*ServiceIamBinding) ToServiceIamBindingOutput

func (i *ServiceIamBinding) ToServiceIamBindingOutput() ServiceIamBindingOutput

func (*ServiceIamBinding) ToServiceIamBindingOutputWithContext

func (i *ServiceIamBinding) ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput

type ServiceIamBindingArgs

type ServiceIamBindingArgs struct {
	Condition ServiceIamBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ServiceIamBinding resource.

func (ServiceIamBindingArgs) ElementType

func (ServiceIamBindingArgs) ElementType() reflect.Type

type ServiceIamBindingArray

type ServiceIamBindingArray []ServiceIamBindingInput

func (ServiceIamBindingArray) ElementType

func (ServiceIamBindingArray) ElementType() reflect.Type

func (ServiceIamBindingArray) ToServiceIamBindingArrayOutput

func (i ServiceIamBindingArray) ToServiceIamBindingArrayOutput() ServiceIamBindingArrayOutput

func (ServiceIamBindingArray) ToServiceIamBindingArrayOutputWithContext

func (i ServiceIamBindingArray) ToServiceIamBindingArrayOutputWithContext(ctx context.Context) ServiceIamBindingArrayOutput

type ServiceIamBindingArrayInput

type ServiceIamBindingArrayInput interface {
	pulumi.Input

	ToServiceIamBindingArrayOutput() ServiceIamBindingArrayOutput
	ToServiceIamBindingArrayOutputWithContext(context.Context) ServiceIamBindingArrayOutput
}

ServiceIamBindingArrayInput is an input type that accepts ServiceIamBindingArray and ServiceIamBindingArrayOutput values. You can construct a concrete instance of `ServiceIamBindingArrayInput` via:

ServiceIamBindingArray{ ServiceIamBindingArgs{...} }

type ServiceIamBindingArrayOutput

type ServiceIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ServiceIamBindingArrayOutput) ElementType

func (ServiceIamBindingArrayOutput) Index

func (ServiceIamBindingArrayOutput) ToServiceIamBindingArrayOutput

func (o ServiceIamBindingArrayOutput) ToServiceIamBindingArrayOutput() ServiceIamBindingArrayOutput

func (ServiceIamBindingArrayOutput) ToServiceIamBindingArrayOutputWithContext

func (o ServiceIamBindingArrayOutput) ToServiceIamBindingArrayOutputWithContext(ctx context.Context) ServiceIamBindingArrayOutput

type ServiceIamBindingCondition

type ServiceIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type ServiceIamBindingConditionArgs

type ServiceIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (ServiceIamBindingConditionArgs) ElementType

func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutput

func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput

func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutputWithContext

func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput

func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutput

func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput

func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutputWithContext

func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput

type ServiceIamBindingConditionInput

type ServiceIamBindingConditionInput interface {
	pulumi.Input

	ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput
	ToServiceIamBindingConditionOutputWithContext(context.Context) ServiceIamBindingConditionOutput
}

ServiceIamBindingConditionInput is an input type that accepts ServiceIamBindingConditionArgs and ServiceIamBindingConditionOutput values. You can construct a concrete instance of `ServiceIamBindingConditionInput` via:

ServiceIamBindingConditionArgs{...}

type ServiceIamBindingConditionOutput

type ServiceIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ServiceIamBindingConditionOutput) Description

func (ServiceIamBindingConditionOutput) ElementType

func (ServiceIamBindingConditionOutput) Expression

func (ServiceIamBindingConditionOutput) Title

func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutput

func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput

func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutputWithContext

func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput

func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutput

func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput

func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutputWithContext

func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput

type ServiceIamBindingConditionPtrInput

type ServiceIamBindingConditionPtrInput interface {
	pulumi.Input

	ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
	ToServiceIamBindingConditionPtrOutputWithContext(context.Context) ServiceIamBindingConditionPtrOutput
}

ServiceIamBindingConditionPtrInput is an input type that accepts ServiceIamBindingConditionArgs, ServiceIamBindingConditionPtr and ServiceIamBindingConditionPtrOutput values. You can construct a concrete instance of `ServiceIamBindingConditionPtrInput` via:

        ServiceIamBindingConditionArgs{...}

or:

        nil

type ServiceIamBindingConditionPtrOutput

type ServiceIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ServiceIamBindingConditionPtrOutput) Description

func (ServiceIamBindingConditionPtrOutput) Elem

func (ServiceIamBindingConditionPtrOutput) ElementType

func (ServiceIamBindingConditionPtrOutput) Expression

func (ServiceIamBindingConditionPtrOutput) Title

func (ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutput

func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput

func (ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutputWithContext

func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput

type ServiceIamBindingInput

type ServiceIamBindingInput interface {
	pulumi.Input

	ToServiceIamBindingOutput() ServiceIamBindingOutput
	ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput
}

type ServiceIamBindingMap

type ServiceIamBindingMap map[string]ServiceIamBindingInput

func (ServiceIamBindingMap) ElementType

func (ServiceIamBindingMap) ElementType() reflect.Type

func (ServiceIamBindingMap) ToServiceIamBindingMapOutput

func (i ServiceIamBindingMap) ToServiceIamBindingMapOutput() ServiceIamBindingMapOutput

func (ServiceIamBindingMap) ToServiceIamBindingMapOutputWithContext

func (i ServiceIamBindingMap) ToServiceIamBindingMapOutputWithContext(ctx context.Context) ServiceIamBindingMapOutput

type ServiceIamBindingMapInput

type ServiceIamBindingMapInput interface {
	pulumi.Input

	ToServiceIamBindingMapOutput() ServiceIamBindingMapOutput
	ToServiceIamBindingMapOutputWithContext(context.Context) ServiceIamBindingMapOutput
}

ServiceIamBindingMapInput is an input type that accepts ServiceIamBindingMap and ServiceIamBindingMapOutput values. You can construct a concrete instance of `ServiceIamBindingMapInput` via:

ServiceIamBindingMap{ "key": ServiceIamBindingArgs{...} }

type ServiceIamBindingMapOutput

type ServiceIamBindingMapOutput struct{ *pulumi.OutputState }

func (ServiceIamBindingMapOutput) ElementType

func (ServiceIamBindingMapOutput) ElementType() reflect.Type

func (ServiceIamBindingMapOutput) MapIndex

func (ServiceIamBindingMapOutput) ToServiceIamBindingMapOutput

func (o ServiceIamBindingMapOutput) ToServiceIamBindingMapOutput() ServiceIamBindingMapOutput

func (ServiceIamBindingMapOutput) ToServiceIamBindingMapOutputWithContext

func (o ServiceIamBindingMapOutput) ToServiceIamBindingMapOutputWithContext(ctx context.Context) ServiceIamBindingMapOutput

type ServiceIamBindingOutput

type ServiceIamBindingOutput struct{ *pulumi.OutputState }

func (ServiceIamBindingOutput) Condition

func (ServiceIamBindingOutput) ElementType

func (ServiceIamBindingOutput) ElementType() reflect.Type

func (ServiceIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (ServiceIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (ServiceIamBindingOutput) Role

The role that should be applied. Only one `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (ServiceIamBindingOutput) ServiceName

func (ServiceIamBindingOutput) ToServiceIamBindingOutput

func (o ServiceIamBindingOutput) ToServiceIamBindingOutput() ServiceIamBindingOutput

func (ServiceIamBindingOutput) ToServiceIamBindingOutputWithContext

func (o ServiceIamBindingOutput) ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput

type ServiceIamBindingState

type ServiceIamBindingState struct {
	Condition ServiceIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ServiceIamBindingState) ElementType

func (ServiceIamBindingState) ElementType() reflect.Type

type ServiceIamMember

type ServiceIamMember struct {
	pulumi.CustomResourceState

	Condition ServiceIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringOutput `pulumi:"role"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints Service. Each of these resources serves a different use case:

* `endpoints.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `endpoints.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `endpoints.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ServiceIamPolicy`: Retrieves the IAM policy for the service

> **Note:** `endpoints.ServiceIamPolicy` **cannot** be used in conjunction with `endpoints.ServiceIamBinding` and `endpoints.ServiceIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ServiceIamBinding` resources **can be** used in conjunction with `endpoints.ServiceIamMember` resources **only if** they do not grant privilege to the same role.

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}

* {{service_name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints service IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamMember:ServiceIamMember editor "services/{{service_name}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamMember:ServiceIamMember editor "services/{{service_name}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamMember:ServiceIamMember editor services/{{service_name}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetServiceIamMember

func GetServiceIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceIamMemberState, opts ...pulumi.ResourceOption) (*ServiceIamMember, error)

GetServiceIamMember gets an existing ServiceIamMember 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 NewServiceIamMember

func NewServiceIamMember(ctx *pulumi.Context,
	name string, args *ServiceIamMemberArgs, opts ...pulumi.ResourceOption) (*ServiceIamMember, error)

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

func (*ServiceIamMember) ElementType

func (*ServiceIamMember) ElementType() reflect.Type

func (*ServiceIamMember) ToServiceIamMemberOutput

func (i *ServiceIamMember) ToServiceIamMemberOutput() ServiceIamMemberOutput

func (*ServiceIamMember) ToServiceIamMemberOutputWithContext

func (i *ServiceIamMember) ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput

type ServiceIamMemberArgs

type ServiceIamMemberArgs struct {
	Condition ServiceIamMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ServiceIamMember resource.

func (ServiceIamMemberArgs) ElementType

func (ServiceIamMemberArgs) ElementType() reflect.Type

type ServiceIamMemberArray

type ServiceIamMemberArray []ServiceIamMemberInput

func (ServiceIamMemberArray) ElementType

func (ServiceIamMemberArray) ElementType() reflect.Type

func (ServiceIamMemberArray) ToServiceIamMemberArrayOutput

func (i ServiceIamMemberArray) ToServiceIamMemberArrayOutput() ServiceIamMemberArrayOutput

func (ServiceIamMemberArray) ToServiceIamMemberArrayOutputWithContext

func (i ServiceIamMemberArray) ToServiceIamMemberArrayOutputWithContext(ctx context.Context) ServiceIamMemberArrayOutput

type ServiceIamMemberArrayInput

type ServiceIamMemberArrayInput interface {
	pulumi.Input

	ToServiceIamMemberArrayOutput() ServiceIamMemberArrayOutput
	ToServiceIamMemberArrayOutputWithContext(context.Context) ServiceIamMemberArrayOutput
}

ServiceIamMemberArrayInput is an input type that accepts ServiceIamMemberArray and ServiceIamMemberArrayOutput values. You can construct a concrete instance of `ServiceIamMemberArrayInput` via:

ServiceIamMemberArray{ ServiceIamMemberArgs{...} }

type ServiceIamMemberArrayOutput

type ServiceIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ServiceIamMemberArrayOutput) ElementType

func (ServiceIamMemberArrayOutput) Index

func (ServiceIamMemberArrayOutput) ToServiceIamMemberArrayOutput

func (o ServiceIamMemberArrayOutput) ToServiceIamMemberArrayOutput() ServiceIamMemberArrayOutput

func (ServiceIamMemberArrayOutput) ToServiceIamMemberArrayOutputWithContext

func (o ServiceIamMemberArrayOutput) ToServiceIamMemberArrayOutputWithContext(ctx context.Context) ServiceIamMemberArrayOutput

type ServiceIamMemberCondition

type ServiceIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type ServiceIamMemberConditionArgs

type ServiceIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (ServiceIamMemberConditionArgs) ElementType

func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutput

func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput

func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutputWithContext

func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput

func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutput

func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput

func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutputWithContext

func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput

type ServiceIamMemberConditionInput

type ServiceIamMemberConditionInput interface {
	pulumi.Input

	ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput
	ToServiceIamMemberConditionOutputWithContext(context.Context) ServiceIamMemberConditionOutput
}

ServiceIamMemberConditionInput is an input type that accepts ServiceIamMemberConditionArgs and ServiceIamMemberConditionOutput values. You can construct a concrete instance of `ServiceIamMemberConditionInput` via:

ServiceIamMemberConditionArgs{...}

type ServiceIamMemberConditionOutput

type ServiceIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ServiceIamMemberConditionOutput) Description

func (ServiceIamMemberConditionOutput) ElementType

func (ServiceIamMemberConditionOutput) Expression

func (ServiceIamMemberConditionOutput) Title

func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutput

func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput

func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutputWithContext

func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput

func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutput

func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput

func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutputWithContext

func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput

type ServiceIamMemberConditionPtrInput

type ServiceIamMemberConditionPtrInput interface {
	pulumi.Input

	ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
	ToServiceIamMemberConditionPtrOutputWithContext(context.Context) ServiceIamMemberConditionPtrOutput
}

ServiceIamMemberConditionPtrInput is an input type that accepts ServiceIamMemberConditionArgs, ServiceIamMemberConditionPtr and ServiceIamMemberConditionPtrOutput values. You can construct a concrete instance of `ServiceIamMemberConditionPtrInput` via:

        ServiceIamMemberConditionArgs{...}

or:

        nil

type ServiceIamMemberConditionPtrOutput

type ServiceIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ServiceIamMemberConditionPtrOutput) Description

func (ServiceIamMemberConditionPtrOutput) Elem

func (ServiceIamMemberConditionPtrOutput) ElementType

func (ServiceIamMemberConditionPtrOutput) Expression

func (ServiceIamMemberConditionPtrOutput) Title

func (ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutput

func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput

func (ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutputWithContext

func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput

type ServiceIamMemberInput

type ServiceIamMemberInput interface {
	pulumi.Input

	ToServiceIamMemberOutput() ServiceIamMemberOutput
	ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput
}

type ServiceIamMemberMap

type ServiceIamMemberMap map[string]ServiceIamMemberInput

func (ServiceIamMemberMap) ElementType

func (ServiceIamMemberMap) ElementType() reflect.Type

func (ServiceIamMemberMap) ToServiceIamMemberMapOutput

func (i ServiceIamMemberMap) ToServiceIamMemberMapOutput() ServiceIamMemberMapOutput

func (ServiceIamMemberMap) ToServiceIamMemberMapOutputWithContext

func (i ServiceIamMemberMap) ToServiceIamMemberMapOutputWithContext(ctx context.Context) ServiceIamMemberMapOutput

type ServiceIamMemberMapInput

type ServiceIamMemberMapInput interface {
	pulumi.Input

	ToServiceIamMemberMapOutput() ServiceIamMemberMapOutput
	ToServiceIamMemberMapOutputWithContext(context.Context) ServiceIamMemberMapOutput
}

ServiceIamMemberMapInput is an input type that accepts ServiceIamMemberMap and ServiceIamMemberMapOutput values. You can construct a concrete instance of `ServiceIamMemberMapInput` via:

ServiceIamMemberMap{ "key": ServiceIamMemberArgs{...} }

type ServiceIamMemberMapOutput

type ServiceIamMemberMapOutput struct{ *pulumi.OutputState }

func (ServiceIamMemberMapOutput) ElementType

func (ServiceIamMemberMapOutput) ElementType() reflect.Type

func (ServiceIamMemberMapOutput) MapIndex

func (ServiceIamMemberMapOutput) ToServiceIamMemberMapOutput

func (o ServiceIamMemberMapOutput) ToServiceIamMemberMapOutput() ServiceIamMemberMapOutput

func (ServiceIamMemberMapOutput) ToServiceIamMemberMapOutputWithContext

func (o ServiceIamMemberMapOutput) ToServiceIamMemberMapOutputWithContext(ctx context.Context) ServiceIamMemberMapOutput

type ServiceIamMemberOutput

type ServiceIamMemberOutput struct{ *pulumi.OutputState }

func (ServiceIamMemberOutput) Condition

func (ServiceIamMemberOutput) ElementType

func (ServiceIamMemberOutput) ElementType() reflect.Type

func (ServiceIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (ServiceIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (ServiceIamMemberOutput) Role

The role that should be applied. Only one `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (ServiceIamMemberOutput) ServiceName

func (o ServiceIamMemberOutput) ServiceName() pulumi.StringOutput

func (ServiceIamMemberOutput) ToServiceIamMemberOutput

func (o ServiceIamMemberOutput) ToServiceIamMemberOutput() ServiceIamMemberOutput

func (ServiceIamMemberOutput) ToServiceIamMemberOutputWithContext

func (o ServiceIamMemberOutput) ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput

type ServiceIamMemberState

type ServiceIamMemberState struct {
	Condition ServiceIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `endpoints.ServiceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role        pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ServiceIamMemberState) ElementType

func (ServiceIamMemberState) ElementType() reflect.Type

type ServiceIamPolicy

type ServiceIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringOutput `pulumi:"policyData"`
	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
}

Three different resources help you manage your IAM policy for Cloud Endpoints Service. Each of these resources serves a different use case:

* `endpoints.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `endpoints.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `endpoints.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `endpoints.ServiceIamPolicy`: Retrieves the IAM policy for the service

> **Note:** `endpoints.ServiceIamPolicy` **cannot** be used in conjunction with `endpoints.ServiceIamBinding` and `endpoints.ServiceIamMember` or they will fight over what your policy should be.

> **Note:** `endpoints.ServiceIamBinding` resources **can be** used in conjunction with `endpoints.ServiceIamMember` resources **only if** they do not grant privilege to the same role.

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = endpoints.NewServiceIamPolicy(ctx, "policy", &endpoints.ServiceIamPolicyArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			PolicyData:  pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamBinding(ctx, "binding", &endpoints.ServiceIamBindingArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_endpoints\_service\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := endpoints.NewServiceIamMember(ctx, "member", &endpoints.ServiceIamMemberArgs{
			ServiceName: pulumi.Any(endpointsService.ServiceName),
			Role:        pulumi.String("roles/viewer"),
			Member:      pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* services/{{service_name}}

* {{service_name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud Endpoints service IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamPolicy:ServiceIamPolicy editor "services/{{service_name}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamPolicy:ServiceIamPolicy editor "services/{{service_name}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:endpoints/serviceIamPolicy:ServiceIamPolicy editor services/{{service_name}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetServiceIamPolicy

func GetServiceIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceIamPolicyState, opts ...pulumi.ResourceOption) (*ServiceIamPolicy, error)

GetServiceIamPolicy gets an existing ServiceIamPolicy 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 NewServiceIamPolicy

func NewServiceIamPolicy(ctx *pulumi.Context,
	name string, args *ServiceIamPolicyArgs, opts ...pulumi.ResourceOption) (*ServiceIamPolicy, error)

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

func (*ServiceIamPolicy) ElementType

func (*ServiceIamPolicy) ElementType() reflect.Type

func (*ServiceIamPolicy) ToServiceIamPolicyOutput

func (i *ServiceIamPolicy) ToServiceIamPolicyOutput() ServiceIamPolicyOutput

func (*ServiceIamPolicy) ToServiceIamPolicyOutputWithContext

func (i *ServiceIamPolicy) ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput

type ServiceIamPolicyArgs

type ServiceIamPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringInput
	ServiceName pulumi.StringInput
}

The set of arguments for constructing a ServiceIamPolicy resource.

func (ServiceIamPolicyArgs) ElementType

func (ServiceIamPolicyArgs) ElementType() reflect.Type

type ServiceIamPolicyArray

type ServiceIamPolicyArray []ServiceIamPolicyInput

func (ServiceIamPolicyArray) ElementType

func (ServiceIamPolicyArray) ElementType() reflect.Type

func (ServiceIamPolicyArray) ToServiceIamPolicyArrayOutput

func (i ServiceIamPolicyArray) ToServiceIamPolicyArrayOutput() ServiceIamPolicyArrayOutput

func (ServiceIamPolicyArray) ToServiceIamPolicyArrayOutputWithContext

func (i ServiceIamPolicyArray) ToServiceIamPolicyArrayOutputWithContext(ctx context.Context) ServiceIamPolicyArrayOutput

type ServiceIamPolicyArrayInput

type ServiceIamPolicyArrayInput interface {
	pulumi.Input

	ToServiceIamPolicyArrayOutput() ServiceIamPolicyArrayOutput
	ToServiceIamPolicyArrayOutputWithContext(context.Context) ServiceIamPolicyArrayOutput
}

ServiceIamPolicyArrayInput is an input type that accepts ServiceIamPolicyArray and ServiceIamPolicyArrayOutput values. You can construct a concrete instance of `ServiceIamPolicyArrayInput` via:

ServiceIamPolicyArray{ ServiceIamPolicyArgs{...} }

type ServiceIamPolicyArrayOutput

type ServiceIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ServiceIamPolicyArrayOutput) ElementType

func (ServiceIamPolicyArrayOutput) Index

func (ServiceIamPolicyArrayOutput) ToServiceIamPolicyArrayOutput

func (o ServiceIamPolicyArrayOutput) ToServiceIamPolicyArrayOutput() ServiceIamPolicyArrayOutput

func (ServiceIamPolicyArrayOutput) ToServiceIamPolicyArrayOutputWithContext

func (o ServiceIamPolicyArrayOutput) ToServiceIamPolicyArrayOutputWithContext(ctx context.Context) ServiceIamPolicyArrayOutput

type ServiceIamPolicyInput

type ServiceIamPolicyInput interface {
	pulumi.Input

	ToServiceIamPolicyOutput() ServiceIamPolicyOutput
	ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput
}

type ServiceIamPolicyMap

type ServiceIamPolicyMap map[string]ServiceIamPolicyInput

func (ServiceIamPolicyMap) ElementType

func (ServiceIamPolicyMap) ElementType() reflect.Type

func (ServiceIamPolicyMap) ToServiceIamPolicyMapOutput

func (i ServiceIamPolicyMap) ToServiceIamPolicyMapOutput() ServiceIamPolicyMapOutput

func (ServiceIamPolicyMap) ToServiceIamPolicyMapOutputWithContext

func (i ServiceIamPolicyMap) ToServiceIamPolicyMapOutputWithContext(ctx context.Context) ServiceIamPolicyMapOutput

type ServiceIamPolicyMapInput

type ServiceIamPolicyMapInput interface {
	pulumi.Input

	ToServiceIamPolicyMapOutput() ServiceIamPolicyMapOutput
	ToServiceIamPolicyMapOutputWithContext(context.Context) ServiceIamPolicyMapOutput
}

ServiceIamPolicyMapInput is an input type that accepts ServiceIamPolicyMap and ServiceIamPolicyMapOutput values. You can construct a concrete instance of `ServiceIamPolicyMapInput` via:

ServiceIamPolicyMap{ "key": ServiceIamPolicyArgs{...} }

type ServiceIamPolicyMapOutput

type ServiceIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ServiceIamPolicyMapOutput) ElementType

func (ServiceIamPolicyMapOutput) ElementType() reflect.Type

func (ServiceIamPolicyMapOutput) MapIndex

func (ServiceIamPolicyMapOutput) ToServiceIamPolicyMapOutput

func (o ServiceIamPolicyMapOutput) ToServiceIamPolicyMapOutput() ServiceIamPolicyMapOutput

func (ServiceIamPolicyMapOutput) ToServiceIamPolicyMapOutputWithContext

func (o ServiceIamPolicyMapOutput) ToServiceIamPolicyMapOutputWithContext(ctx context.Context) ServiceIamPolicyMapOutput

type ServiceIamPolicyOutput

type ServiceIamPolicyOutput struct{ *pulumi.OutputState }

func (ServiceIamPolicyOutput) ElementType

func (ServiceIamPolicyOutput) ElementType() reflect.Type

func (ServiceIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (ServiceIamPolicyOutput) PolicyData

The policy data generated by a `organizations.getIAMPolicy` data source.

func (ServiceIamPolicyOutput) ServiceName

func (o ServiceIamPolicyOutput) ServiceName() pulumi.StringOutput

func (ServiceIamPolicyOutput) ToServiceIamPolicyOutput

func (o ServiceIamPolicyOutput) ToServiceIamPolicyOutput() ServiceIamPolicyOutput

func (ServiceIamPolicyOutput) ToServiceIamPolicyOutputWithContext

func (o ServiceIamPolicyOutput) ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput

type ServiceIamPolicyState

type ServiceIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  pulumi.StringPtrInput
	ServiceName pulumi.StringPtrInput
}

func (ServiceIamPolicyState) ElementType

func (ServiceIamPolicyState) ElementType() reflect.Type

type ServiceInput

type ServiceInput interface {
	pulumi.Input

	ToServiceOutput() ServiceOutput
	ToServiceOutputWithContext(ctx context.Context) ServiceOutput
}

type ServiceMap

type ServiceMap map[string]ServiceInput

func (ServiceMap) ElementType

func (ServiceMap) ElementType() reflect.Type

func (ServiceMap) ToServiceMapOutput

func (i ServiceMap) ToServiceMapOutput() ServiceMapOutput

func (ServiceMap) ToServiceMapOutputWithContext

func (i ServiceMap) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput

type ServiceMapInput

type ServiceMapInput interface {
	pulumi.Input

	ToServiceMapOutput() ServiceMapOutput
	ToServiceMapOutputWithContext(context.Context) ServiceMapOutput
}

ServiceMapInput is an input type that accepts ServiceMap and ServiceMapOutput values. You can construct a concrete instance of `ServiceMapInput` via:

ServiceMap{ "key": ServiceArgs{...} }

type ServiceMapOutput

type ServiceMapOutput struct{ *pulumi.OutputState }

func (ServiceMapOutput) ElementType

func (ServiceMapOutput) ElementType() reflect.Type

func (ServiceMapOutput) MapIndex

func (ServiceMapOutput) ToServiceMapOutput

func (o ServiceMapOutput) ToServiceMapOutput() ServiceMapOutput

func (ServiceMapOutput) ToServiceMapOutputWithContext

func (o ServiceMapOutput) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput

type ServiceOutput

type ServiceOutput struct{ *pulumi.OutputState }

func (ServiceOutput) Apis

A list of API objects; structure is documented below.

func (ServiceOutput) ConfigId

func (o ServiceOutput) ConfigId() pulumi.StringOutput

The autogenerated ID for the configuration that is rolled out as part of the creation of this resource. Must be provided to compute engine instances as a tag.

func (ServiceOutput) DnsAddress

func (o ServiceOutput) DnsAddress() pulumi.StringOutput

The address at which the service can be found - usually the same as the service name.

func (ServiceOutput) ElementType

func (ServiceOutput) ElementType() reflect.Type

func (ServiceOutput) Endpoints

A list of Endpoint objects; structure is documented below.

func (ServiceOutput) GrpcConfig

func (o ServiceOutput) GrpcConfig() pulumi.StringPtrOutput

The full text of the Service Config YAML file (Example located [here](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/endpoints/bookstore-grpc/api_config.yaml)). If provided, must also provide `protocOutputBase64`. `openApi` config must *not* be provided.

func (ServiceOutput) OpenapiConfig

func (o ServiceOutput) OpenapiConfig() pulumi.StringPtrOutput

The full text of the OpenAPI YAML configuration as described [here](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md). Either this, or *both* of `grpcConfig` and `protocOutputBase64` must be specified.

func (ServiceOutput) Project

func (o ServiceOutput) Project() pulumi.StringOutput

The project ID that the service belongs to. If not provided, provider project is used.

func (ServiceOutput) ProtocOutputBase64

func (o ServiceOutput) ProtocOutputBase64() pulumi.StringPtrOutput

The full contents of the Service Descriptor File generated by protoc. This should be a compiled .pb file, base64-encoded.

func (ServiceOutput) ServiceName

func (o ServiceOutput) ServiceName() pulumi.StringOutput

The name of the service. Usually of the form `$apiname.endpoints.$projectid.cloud.goog`.

***

func (ServiceOutput) ToServiceOutput

func (o ServiceOutput) ToServiceOutput() ServiceOutput

func (ServiceOutput) ToServiceOutputWithContext

func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOutput

type ServiceState

type ServiceState struct {
	// A list of API objects; structure is documented below.
	Apis ServiceApiArrayInput
	// The autogenerated ID for the configuration that is rolled out as part of the creation of this resource.  Must be provided to compute engine instances as a tag.
	ConfigId pulumi.StringPtrInput
	// The address at which the service can be found - usually the same as the service name.
	DnsAddress pulumi.StringPtrInput
	// A list of Endpoint objects; structure is documented below.
	Endpoints ServiceEndpointArrayInput
	// The full text of the Service Config YAML file (Example located [here](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/endpoints/bookstore-grpc/api_config.yaml)).
	// If provided, must also provide `protocOutputBase64`.  `openApi` config must *not* be provided.
	GrpcConfig pulumi.StringPtrInput
	// The full text of the OpenAPI YAML configuration as described [here](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md).
	// Either this, or *both* of `grpcConfig` and `protocOutputBase64` must be specified.
	OpenapiConfig pulumi.StringPtrInput
	// The project ID that the service belongs to.  If not provided, provider project is used.
	Project pulumi.StringPtrInput
	// The full contents of the Service Descriptor File generated by protoc.  This should be a compiled .pb file, base64-encoded.
	ProtocOutputBase64 pulumi.StringPtrInput
	// The name of the service.  Usually of the form `$apiname.endpoints.$projectid.cloud.goog`.
	//
	// ***
	ServiceName pulumi.StringPtrInput
}

func (ServiceState) ElementType

func (ServiceState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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