bigqueryanalyticshub

package
v6.67.1 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DataExchange

type DataExchange struct {
	pulumi.CustomResourceState

	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// Description of the data exchange.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and must not start or end with spaces.
	//
	// ***
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Documentation describing the data exchange.
	Documentation pulumi.StringPtrOutput `pulumi:"documentation"`
	// Base64 encoded image representing the data exchange.
	Icon pulumi.StringPtrOutput `pulumi:"icon"`
	// Number of listings contained in the data exchange.
	ListingCount pulumi.IntOutput `pulumi:"listingCount"`
	// The name of the location this data exchange.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the data exchange, for example:
	// "projects/myproject/locations/US/dataExchanges/123"
	Name pulumi.StringOutput `pulumi:"name"`
	// Email or URL of the primary point of contact of the data exchange.
	PrimaryContact pulumi.StringPtrOutput `pulumi:"primaryContact"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
}

A Bigquery Analytics Hub data exchange

To get more information about DataExchange, see:

* [API documentation](https://cloud.google.com/bigquery/docs/reference/analytics-hub/rest/v1/projects.locations.dataExchanges) * How-to Guides

## Example Usage ### Bigquery Analyticshub Data Exchange Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchange(ctx, "dataExchange", &bigqueryanalyticshub.DataExchangeArgs{
			DataExchangeId: pulumi.String("my_data_exchange"),
			Description:    pulumi.String("example data exchange"),
			DisplayName:    pulumi.String("my_data_exchange"),
			Location:       pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

DataExchange can be imported using any of these accepted formats

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchange:DataExchange default projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}

```

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchange:DataExchange default {{project}}/{{location}}/{{data_exchange_id}}

```

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchange:DataExchange default {{location}}/{{data_exchange_id}}

```

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchange:DataExchange default {{data_exchange_id}}

```

func GetDataExchange

func GetDataExchange(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DataExchangeState, opts ...pulumi.ResourceOption) (*DataExchange, error)

GetDataExchange gets an existing DataExchange 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 NewDataExchange

func NewDataExchange(ctx *pulumi.Context,
	name string, args *DataExchangeArgs, opts ...pulumi.ResourceOption) (*DataExchange, error)

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

func (*DataExchange) ElementType

func (*DataExchange) ElementType() reflect.Type

func (*DataExchange) ToDataExchangeOutput

func (i *DataExchange) ToDataExchangeOutput() DataExchangeOutput

func (*DataExchange) ToDataExchangeOutputWithContext

func (i *DataExchange) ToDataExchangeOutputWithContext(ctx context.Context) DataExchangeOutput

func (*DataExchange) ToOutput added in v6.65.1

type DataExchangeArgs

type DataExchangeArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringInput
	// Description of the data exchange.
	Description pulumi.StringPtrInput
	// Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and must not start or end with spaces.
	//
	// ***
	DisplayName pulumi.StringInput
	// Documentation describing the data exchange.
	Documentation pulumi.StringPtrInput
	// Base64 encoded image representing the data exchange.
	Icon pulumi.StringPtrInput
	// The name of the location this data exchange.
	Location pulumi.StringInput
	// Email or URL of the primary point of contact of the data exchange.
	PrimaryContact pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a DataExchange resource.

func (DataExchangeArgs) ElementType

func (DataExchangeArgs) ElementType() reflect.Type

type DataExchangeArray

type DataExchangeArray []DataExchangeInput

func (DataExchangeArray) ElementType

func (DataExchangeArray) ElementType() reflect.Type

func (DataExchangeArray) ToDataExchangeArrayOutput

func (i DataExchangeArray) ToDataExchangeArrayOutput() DataExchangeArrayOutput

func (DataExchangeArray) ToDataExchangeArrayOutputWithContext

func (i DataExchangeArray) ToDataExchangeArrayOutputWithContext(ctx context.Context) DataExchangeArrayOutput

func (DataExchangeArray) ToOutput added in v6.65.1

type DataExchangeArrayInput

type DataExchangeArrayInput interface {
	pulumi.Input

	ToDataExchangeArrayOutput() DataExchangeArrayOutput
	ToDataExchangeArrayOutputWithContext(context.Context) DataExchangeArrayOutput
}

DataExchangeArrayInput is an input type that accepts DataExchangeArray and DataExchangeArrayOutput values. You can construct a concrete instance of `DataExchangeArrayInput` via:

DataExchangeArray{ DataExchangeArgs{...} }

type DataExchangeArrayOutput

type DataExchangeArrayOutput struct{ *pulumi.OutputState }

func (DataExchangeArrayOutput) ElementType

func (DataExchangeArrayOutput) ElementType() reflect.Type

func (DataExchangeArrayOutput) Index

func (DataExchangeArrayOutput) ToDataExchangeArrayOutput

func (o DataExchangeArrayOutput) ToDataExchangeArrayOutput() DataExchangeArrayOutput

func (DataExchangeArrayOutput) ToDataExchangeArrayOutputWithContext

func (o DataExchangeArrayOutput) ToDataExchangeArrayOutputWithContext(ctx context.Context) DataExchangeArrayOutput

func (DataExchangeArrayOutput) ToOutput added in v6.65.1

type DataExchangeIamBinding

type DataExchangeIamBinding struct {
	pulumi.CustomResourceState

	Condition DataExchangeIamBindingConditionPtrOutput `pulumi:"condition"`
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput      `pulumi:"location"`
	Members  pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub DataExchange. Each of these resources serves a different use case:

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Authoritative. Sets the IAM policy for the dataexchange and replaces any existing policy already attached. * `bigqueryanalyticshub.DataExchangeIamBinding`: 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 dataexchange are preserved. * `bigqueryanalyticshub.DataExchangeIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the dataexchange are preserved.

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

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Retrieves the IAM policy for the dataexchange

> **Note:** `bigqueryanalyticshub.DataExchangeIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.DataExchangeIamBinding` and `bigqueryanalyticshub.DataExchangeIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewDataExchangeIamPolicy(ctx, "policy", &bigqueryanalyticshub.DataExchangeIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamBinding(ctx, "binding", &bigqueryanalyticshub.DataExchangeIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamMember(ctx, "member", &bigqueryanalyticshub.DataExchangeIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} * {{project}}/{{location}}/{{data_exchange_id}} * {{location}}/{{data_exchange_id}} * {{data_exchange_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub dataexchange IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}

```

-> **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 GetDataExchangeIamBinding

func GetDataExchangeIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DataExchangeIamBindingState, opts ...pulumi.ResourceOption) (*DataExchangeIamBinding, error)

GetDataExchangeIamBinding gets an existing DataExchangeIamBinding 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 NewDataExchangeIamBinding

func NewDataExchangeIamBinding(ctx *pulumi.Context,
	name string, args *DataExchangeIamBindingArgs, opts ...pulumi.ResourceOption) (*DataExchangeIamBinding, error)

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

func (*DataExchangeIamBinding) ElementType

func (*DataExchangeIamBinding) ElementType() reflect.Type

func (*DataExchangeIamBinding) ToDataExchangeIamBindingOutput

func (i *DataExchangeIamBinding) ToDataExchangeIamBindingOutput() DataExchangeIamBindingOutput

func (*DataExchangeIamBinding) ToDataExchangeIamBindingOutputWithContext

func (i *DataExchangeIamBinding) ToDataExchangeIamBindingOutputWithContext(ctx context.Context) DataExchangeIamBindingOutput

func (*DataExchangeIamBinding) ToOutput added in v6.65.1

type DataExchangeIamBindingArgs

type DataExchangeIamBindingArgs struct {
	Condition DataExchangeIamBindingConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a DataExchangeIamBinding resource.

func (DataExchangeIamBindingArgs) ElementType

func (DataExchangeIamBindingArgs) ElementType() reflect.Type

type DataExchangeIamBindingArray

type DataExchangeIamBindingArray []DataExchangeIamBindingInput

func (DataExchangeIamBindingArray) ElementType

func (DataExchangeIamBindingArray) ToDataExchangeIamBindingArrayOutput

func (i DataExchangeIamBindingArray) ToDataExchangeIamBindingArrayOutput() DataExchangeIamBindingArrayOutput

func (DataExchangeIamBindingArray) ToDataExchangeIamBindingArrayOutputWithContext

func (i DataExchangeIamBindingArray) ToDataExchangeIamBindingArrayOutputWithContext(ctx context.Context) DataExchangeIamBindingArrayOutput

func (DataExchangeIamBindingArray) ToOutput added in v6.65.1

type DataExchangeIamBindingArrayInput

type DataExchangeIamBindingArrayInput interface {
	pulumi.Input

	ToDataExchangeIamBindingArrayOutput() DataExchangeIamBindingArrayOutput
	ToDataExchangeIamBindingArrayOutputWithContext(context.Context) DataExchangeIamBindingArrayOutput
}

DataExchangeIamBindingArrayInput is an input type that accepts DataExchangeIamBindingArray and DataExchangeIamBindingArrayOutput values. You can construct a concrete instance of `DataExchangeIamBindingArrayInput` via:

DataExchangeIamBindingArray{ DataExchangeIamBindingArgs{...} }

type DataExchangeIamBindingArrayOutput

type DataExchangeIamBindingArrayOutput struct{ *pulumi.OutputState }

func (DataExchangeIamBindingArrayOutput) ElementType

func (DataExchangeIamBindingArrayOutput) Index

func (DataExchangeIamBindingArrayOutput) ToDataExchangeIamBindingArrayOutput

func (o DataExchangeIamBindingArrayOutput) ToDataExchangeIamBindingArrayOutput() DataExchangeIamBindingArrayOutput

func (DataExchangeIamBindingArrayOutput) ToDataExchangeIamBindingArrayOutputWithContext

func (o DataExchangeIamBindingArrayOutput) ToDataExchangeIamBindingArrayOutputWithContext(ctx context.Context) DataExchangeIamBindingArrayOutput

func (DataExchangeIamBindingArrayOutput) ToOutput added in v6.65.1

type DataExchangeIamBindingCondition

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

type DataExchangeIamBindingConditionArgs

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

func (DataExchangeIamBindingConditionArgs) ElementType

func (DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionOutput

func (i DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionOutput() DataExchangeIamBindingConditionOutput

func (DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionOutputWithContext

func (i DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionOutputWithContext(ctx context.Context) DataExchangeIamBindingConditionOutput

func (DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionPtrOutput

func (i DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionPtrOutput() DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionPtrOutputWithContext

func (i DataExchangeIamBindingConditionArgs) ToDataExchangeIamBindingConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionArgs) ToOutput added in v6.65.1

type DataExchangeIamBindingConditionInput

type DataExchangeIamBindingConditionInput interface {
	pulumi.Input

	ToDataExchangeIamBindingConditionOutput() DataExchangeIamBindingConditionOutput
	ToDataExchangeIamBindingConditionOutputWithContext(context.Context) DataExchangeIamBindingConditionOutput
}

DataExchangeIamBindingConditionInput is an input type that accepts DataExchangeIamBindingConditionArgs and DataExchangeIamBindingConditionOutput values. You can construct a concrete instance of `DataExchangeIamBindingConditionInput` via:

DataExchangeIamBindingConditionArgs{...}

type DataExchangeIamBindingConditionOutput

type DataExchangeIamBindingConditionOutput struct{ *pulumi.OutputState }

func (DataExchangeIamBindingConditionOutput) Description

func (DataExchangeIamBindingConditionOutput) ElementType

func (DataExchangeIamBindingConditionOutput) Expression

func (DataExchangeIamBindingConditionOutput) Title

func (DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionOutput

func (o DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionOutput() DataExchangeIamBindingConditionOutput

func (DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionOutputWithContext

func (o DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionOutputWithContext(ctx context.Context) DataExchangeIamBindingConditionOutput

func (DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionPtrOutput

func (o DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionPtrOutput() DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionPtrOutputWithContext

func (o DataExchangeIamBindingConditionOutput) ToDataExchangeIamBindingConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionOutput) ToOutput added in v6.65.1

type DataExchangeIamBindingConditionPtrInput

type DataExchangeIamBindingConditionPtrInput interface {
	pulumi.Input

	ToDataExchangeIamBindingConditionPtrOutput() DataExchangeIamBindingConditionPtrOutput
	ToDataExchangeIamBindingConditionPtrOutputWithContext(context.Context) DataExchangeIamBindingConditionPtrOutput
}

DataExchangeIamBindingConditionPtrInput is an input type that accepts DataExchangeIamBindingConditionArgs, DataExchangeIamBindingConditionPtr and DataExchangeIamBindingConditionPtrOutput values. You can construct a concrete instance of `DataExchangeIamBindingConditionPtrInput` via:

        DataExchangeIamBindingConditionArgs{...}

or:

        nil

type DataExchangeIamBindingConditionPtrOutput

type DataExchangeIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (DataExchangeIamBindingConditionPtrOutput) Description

func (DataExchangeIamBindingConditionPtrOutput) Elem

func (DataExchangeIamBindingConditionPtrOutput) ElementType

func (DataExchangeIamBindingConditionPtrOutput) Expression

func (DataExchangeIamBindingConditionPtrOutput) Title

func (DataExchangeIamBindingConditionPtrOutput) ToDataExchangeIamBindingConditionPtrOutput

func (o DataExchangeIamBindingConditionPtrOutput) ToDataExchangeIamBindingConditionPtrOutput() DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionPtrOutput) ToDataExchangeIamBindingConditionPtrOutputWithContext

func (o DataExchangeIamBindingConditionPtrOutput) ToDataExchangeIamBindingConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamBindingConditionPtrOutput

func (DataExchangeIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type DataExchangeIamBindingInput

type DataExchangeIamBindingInput interface {
	pulumi.Input

	ToDataExchangeIamBindingOutput() DataExchangeIamBindingOutput
	ToDataExchangeIamBindingOutputWithContext(ctx context.Context) DataExchangeIamBindingOutput
}

type DataExchangeIamBindingMap

type DataExchangeIamBindingMap map[string]DataExchangeIamBindingInput

func (DataExchangeIamBindingMap) ElementType

func (DataExchangeIamBindingMap) ElementType() reflect.Type

func (DataExchangeIamBindingMap) ToDataExchangeIamBindingMapOutput

func (i DataExchangeIamBindingMap) ToDataExchangeIamBindingMapOutput() DataExchangeIamBindingMapOutput

func (DataExchangeIamBindingMap) ToDataExchangeIamBindingMapOutputWithContext

func (i DataExchangeIamBindingMap) ToDataExchangeIamBindingMapOutputWithContext(ctx context.Context) DataExchangeIamBindingMapOutput

func (DataExchangeIamBindingMap) ToOutput added in v6.65.1

type DataExchangeIamBindingMapInput

type DataExchangeIamBindingMapInput interface {
	pulumi.Input

	ToDataExchangeIamBindingMapOutput() DataExchangeIamBindingMapOutput
	ToDataExchangeIamBindingMapOutputWithContext(context.Context) DataExchangeIamBindingMapOutput
}

DataExchangeIamBindingMapInput is an input type that accepts DataExchangeIamBindingMap and DataExchangeIamBindingMapOutput values. You can construct a concrete instance of `DataExchangeIamBindingMapInput` via:

DataExchangeIamBindingMap{ "key": DataExchangeIamBindingArgs{...} }

type DataExchangeIamBindingMapOutput

type DataExchangeIamBindingMapOutput struct{ *pulumi.OutputState }

func (DataExchangeIamBindingMapOutput) ElementType

func (DataExchangeIamBindingMapOutput) MapIndex

func (DataExchangeIamBindingMapOutput) ToDataExchangeIamBindingMapOutput

func (o DataExchangeIamBindingMapOutput) ToDataExchangeIamBindingMapOutput() DataExchangeIamBindingMapOutput

func (DataExchangeIamBindingMapOutput) ToDataExchangeIamBindingMapOutputWithContext

func (o DataExchangeIamBindingMapOutput) ToDataExchangeIamBindingMapOutputWithContext(ctx context.Context) DataExchangeIamBindingMapOutput

func (DataExchangeIamBindingMapOutput) ToOutput added in v6.65.1

type DataExchangeIamBindingOutput

type DataExchangeIamBindingOutput struct{ *pulumi.OutputState }

func (DataExchangeIamBindingOutput) Condition

func (DataExchangeIamBindingOutput) DataExchangeId

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamBindingOutput) ElementType

func (DataExchangeIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (DataExchangeIamBindingOutput) Location

The name of the location this data exchange. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamBindingOutput) Members

func (DataExchangeIamBindingOutput) Project

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (DataExchangeIamBindingOutput) Role

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

func (DataExchangeIamBindingOutput) ToDataExchangeIamBindingOutput

func (o DataExchangeIamBindingOutput) ToDataExchangeIamBindingOutput() DataExchangeIamBindingOutput

func (DataExchangeIamBindingOutput) ToDataExchangeIamBindingOutputWithContext

func (o DataExchangeIamBindingOutput) ToDataExchangeIamBindingOutputWithContext(ctx context.Context) DataExchangeIamBindingOutput

func (DataExchangeIamBindingOutput) ToOutput added in v6.65.1

type DataExchangeIamBindingState

type DataExchangeIamBindingState struct {
	Condition DataExchangeIamBindingConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (DataExchangeIamBindingState) ElementType

type DataExchangeIamMember

type DataExchangeIamMember struct {
	pulumi.CustomResourceState

	Condition DataExchangeIamMemberConditionPtrOutput `pulumi:"condition"`
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput `pulumi:"location"`
	Member   pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub DataExchange. Each of these resources serves a different use case:

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Authoritative. Sets the IAM policy for the dataexchange and replaces any existing policy already attached. * `bigqueryanalyticshub.DataExchangeIamBinding`: 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 dataexchange are preserved. * `bigqueryanalyticshub.DataExchangeIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the dataexchange are preserved.

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

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Retrieves the IAM policy for the dataexchange

> **Note:** `bigqueryanalyticshub.DataExchangeIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.DataExchangeIamBinding` and `bigqueryanalyticshub.DataExchangeIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewDataExchangeIamPolicy(ctx, "policy", &bigqueryanalyticshub.DataExchangeIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamBinding(ctx, "binding", &bigqueryanalyticshub.DataExchangeIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamMember(ctx, "member", &bigqueryanalyticshub.DataExchangeIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} * {{project}}/{{location}}/{{data_exchange_id}} * {{location}}/{{data_exchange_id}} * {{data_exchange_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub dataexchange IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}

```

-> **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 GetDataExchangeIamMember

func GetDataExchangeIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DataExchangeIamMemberState, opts ...pulumi.ResourceOption) (*DataExchangeIamMember, error)

GetDataExchangeIamMember gets an existing DataExchangeIamMember 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 NewDataExchangeIamMember

func NewDataExchangeIamMember(ctx *pulumi.Context,
	name string, args *DataExchangeIamMemberArgs, opts ...pulumi.ResourceOption) (*DataExchangeIamMember, error)

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

func (*DataExchangeIamMember) ElementType

func (*DataExchangeIamMember) ElementType() reflect.Type

func (*DataExchangeIamMember) ToDataExchangeIamMemberOutput

func (i *DataExchangeIamMember) ToDataExchangeIamMemberOutput() DataExchangeIamMemberOutput

func (*DataExchangeIamMember) ToDataExchangeIamMemberOutputWithContext

func (i *DataExchangeIamMember) ToDataExchangeIamMemberOutputWithContext(ctx context.Context) DataExchangeIamMemberOutput

func (*DataExchangeIamMember) ToOutput added in v6.65.1

type DataExchangeIamMemberArgs

type DataExchangeIamMemberArgs struct {
	Condition DataExchangeIamMemberConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Member   pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a DataExchangeIamMember resource.

func (DataExchangeIamMemberArgs) ElementType

func (DataExchangeIamMemberArgs) ElementType() reflect.Type

type DataExchangeIamMemberArray

type DataExchangeIamMemberArray []DataExchangeIamMemberInput

func (DataExchangeIamMemberArray) ElementType

func (DataExchangeIamMemberArray) ElementType() reflect.Type

func (DataExchangeIamMemberArray) ToDataExchangeIamMemberArrayOutput

func (i DataExchangeIamMemberArray) ToDataExchangeIamMemberArrayOutput() DataExchangeIamMemberArrayOutput

func (DataExchangeIamMemberArray) ToDataExchangeIamMemberArrayOutputWithContext

func (i DataExchangeIamMemberArray) ToDataExchangeIamMemberArrayOutputWithContext(ctx context.Context) DataExchangeIamMemberArrayOutput

func (DataExchangeIamMemberArray) ToOutput added in v6.65.1

type DataExchangeIamMemberArrayInput

type DataExchangeIamMemberArrayInput interface {
	pulumi.Input

	ToDataExchangeIamMemberArrayOutput() DataExchangeIamMemberArrayOutput
	ToDataExchangeIamMemberArrayOutputWithContext(context.Context) DataExchangeIamMemberArrayOutput
}

DataExchangeIamMemberArrayInput is an input type that accepts DataExchangeIamMemberArray and DataExchangeIamMemberArrayOutput values. You can construct a concrete instance of `DataExchangeIamMemberArrayInput` via:

DataExchangeIamMemberArray{ DataExchangeIamMemberArgs{...} }

type DataExchangeIamMemberArrayOutput

type DataExchangeIamMemberArrayOutput struct{ *pulumi.OutputState }

func (DataExchangeIamMemberArrayOutput) ElementType

func (DataExchangeIamMemberArrayOutput) Index

func (DataExchangeIamMemberArrayOutput) ToDataExchangeIamMemberArrayOutput

func (o DataExchangeIamMemberArrayOutput) ToDataExchangeIamMemberArrayOutput() DataExchangeIamMemberArrayOutput

func (DataExchangeIamMemberArrayOutput) ToDataExchangeIamMemberArrayOutputWithContext

func (o DataExchangeIamMemberArrayOutput) ToDataExchangeIamMemberArrayOutputWithContext(ctx context.Context) DataExchangeIamMemberArrayOutput

func (DataExchangeIamMemberArrayOutput) ToOutput added in v6.65.1

type DataExchangeIamMemberCondition

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

type DataExchangeIamMemberConditionArgs

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

func (DataExchangeIamMemberConditionArgs) ElementType

func (DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionOutput

func (i DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionOutput() DataExchangeIamMemberConditionOutput

func (DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionOutputWithContext

func (i DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionOutputWithContext(ctx context.Context) DataExchangeIamMemberConditionOutput

func (DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionPtrOutput

func (i DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionPtrOutput() DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionPtrOutputWithContext

func (i DataExchangeIamMemberConditionArgs) ToDataExchangeIamMemberConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionArgs) ToOutput added in v6.65.1

type DataExchangeIamMemberConditionInput

type DataExchangeIamMemberConditionInput interface {
	pulumi.Input

	ToDataExchangeIamMemberConditionOutput() DataExchangeIamMemberConditionOutput
	ToDataExchangeIamMemberConditionOutputWithContext(context.Context) DataExchangeIamMemberConditionOutput
}

DataExchangeIamMemberConditionInput is an input type that accepts DataExchangeIamMemberConditionArgs and DataExchangeIamMemberConditionOutput values. You can construct a concrete instance of `DataExchangeIamMemberConditionInput` via:

DataExchangeIamMemberConditionArgs{...}

type DataExchangeIamMemberConditionOutput

type DataExchangeIamMemberConditionOutput struct{ *pulumi.OutputState }

func (DataExchangeIamMemberConditionOutput) Description

func (DataExchangeIamMemberConditionOutput) ElementType

func (DataExchangeIamMemberConditionOutput) Expression

func (DataExchangeIamMemberConditionOutput) Title

func (DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionOutput

func (o DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionOutput() DataExchangeIamMemberConditionOutput

func (DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionOutputWithContext

func (o DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionOutputWithContext(ctx context.Context) DataExchangeIamMemberConditionOutput

func (DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionPtrOutput

func (o DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionPtrOutput() DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionPtrOutputWithContext

func (o DataExchangeIamMemberConditionOutput) ToDataExchangeIamMemberConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionOutput) ToOutput added in v6.65.1

type DataExchangeIamMemberConditionPtrInput

type DataExchangeIamMemberConditionPtrInput interface {
	pulumi.Input

	ToDataExchangeIamMemberConditionPtrOutput() DataExchangeIamMemberConditionPtrOutput
	ToDataExchangeIamMemberConditionPtrOutputWithContext(context.Context) DataExchangeIamMemberConditionPtrOutput
}

DataExchangeIamMemberConditionPtrInput is an input type that accepts DataExchangeIamMemberConditionArgs, DataExchangeIamMemberConditionPtr and DataExchangeIamMemberConditionPtrOutput values. You can construct a concrete instance of `DataExchangeIamMemberConditionPtrInput` via:

        DataExchangeIamMemberConditionArgs{...}

or:

        nil

type DataExchangeIamMemberConditionPtrOutput

type DataExchangeIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (DataExchangeIamMemberConditionPtrOutput) Description

func (DataExchangeIamMemberConditionPtrOutput) Elem

func (DataExchangeIamMemberConditionPtrOutput) ElementType

func (DataExchangeIamMemberConditionPtrOutput) Expression

func (DataExchangeIamMemberConditionPtrOutput) Title

func (DataExchangeIamMemberConditionPtrOutput) ToDataExchangeIamMemberConditionPtrOutput

func (o DataExchangeIamMemberConditionPtrOutput) ToDataExchangeIamMemberConditionPtrOutput() DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionPtrOutput) ToDataExchangeIamMemberConditionPtrOutputWithContext

func (o DataExchangeIamMemberConditionPtrOutput) ToDataExchangeIamMemberConditionPtrOutputWithContext(ctx context.Context) DataExchangeIamMemberConditionPtrOutput

func (DataExchangeIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type DataExchangeIamMemberInput

type DataExchangeIamMemberInput interface {
	pulumi.Input

	ToDataExchangeIamMemberOutput() DataExchangeIamMemberOutput
	ToDataExchangeIamMemberOutputWithContext(ctx context.Context) DataExchangeIamMemberOutput
}

type DataExchangeIamMemberMap

type DataExchangeIamMemberMap map[string]DataExchangeIamMemberInput

func (DataExchangeIamMemberMap) ElementType

func (DataExchangeIamMemberMap) ElementType() reflect.Type

func (DataExchangeIamMemberMap) ToDataExchangeIamMemberMapOutput

func (i DataExchangeIamMemberMap) ToDataExchangeIamMemberMapOutput() DataExchangeIamMemberMapOutput

func (DataExchangeIamMemberMap) ToDataExchangeIamMemberMapOutputWithContext

func (i DataExchangeIamMemberMap) ToDataExchangeIamMemberMapOutputWithContext(ctx context.Context) DataExchangeIamMemberMapOutput

func (DataExchangeIamMemberMap) ToOutput added in v6.65.1

type DataExchangeIamMemberMapInput

type DataExchangeIamMemberMapInput interface {
	pulumi.Input

	ToDataExchangeIamMemberMapOutput() DataExchangeIamMemberMapOutput
	ToDataExchangeIamMemberMapOutputWithContext(context.Context) DataExchangeIamMemberMapOutput
}

DataExchangeIamMemberMapInput is an input type that accepts DataExchangeIamMemberMap and DataExchangeIamMemberMapOutput values. You can construct a concrete instance of `DataExchangeIamMemberMapInput` via:

DataExchangeIamMemberMap{ "key": DataExchangeIamMemberArgs{...} }

type DataExchangeIamMemberMapOutput

type DataExchangeIamMemberMapOutput struct{ *pulumi.OutputState }

func (DataExchangeIamMemberMapOutput) ElementType

func (DataExchangeIamMemberMapOutput) MapIndex

func (DataExchangeIamMemberMapOutput) ToDataExchangeIamMemberMapOutput

func (o DataExchangeIamMemberMapOutput) ToDataExchangeIamMemberMapOutput() DataExchangeIamMemberMapOutput

func (DataExchangeIamMemberMapOutput) ToDataExchangeIamMemberMapOutputWithContext

func (o DataExchangeIamMemberMapOutput) ToDataExchangeIamMemberMapOutputWithContext(ctx context.Context) DataExchangeIamMemberMapOutput

func (DataExchangeIamMemberMapOutput) ToOutput added in v6.65.1

type DataExchangeIamMemberOutput

type DataExchangeIamMemberOutput struct{ *pulumi.OutputState }

func (DataExchangeIamMemberOutput) Condition

func (DataExchangeIamMemberOutput) DataExchangeId

func (o DataExchangeIamMemberOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamMemberOutput) ElementType

func (DataExchangeIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (DataExchangeIamMemberOutput) Location

The name of the location this data exchange. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamMemberOutput) Member

func (DataExchangeIamMemberOutput) Project

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (DataExchangeIamMemberOutput) Role

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

func (DataExchangeIamMemberOutput) ToDataExchangeIamMemberOutput

func (o DataExchangeIamMemberOutput) ToDataExchangeIamMemberOutput() DataExchangeIamMemberOutput

func (DataExchangeIamMemberOutput) ToDataExchangeIamMemberOutputWithContext

func (o DataExchangeIamMemberOutput) ToDataExchangeIamMemberOutputWithContext(ctx context.Context) DataExchangeIamMemberOutput

func (DataExchangeIamMemberOutput) ToOutput added in v6.65.1

type DataExchangeIamMemberState

type DataExchangeIamMemberState struct {
	Condition DataExchangeIamMemberConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Member   pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.DataExchangeIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (DataExchangeIamMemberState) ElementType

func (DataExchangeIamMemberState) ElementType() reflect.Type

type DataExchangeIamPolicy

type DataExchangeIamPolicy struct {
	pulumi.CustomResourceState

	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput `pulumi:"location"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub DataExchange. Each of these resources serves a different use case:

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Authoritative. Sets the IAM policy for the dataexchange and replaces any existing policy already attached. * `bigqueryanalyticshub.DataExchangeIamBinding`: 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 dataexchange are preserved. * `bigqueryanalyticshub.DataExchangeIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the dataexchange are preserved.

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

* `bigqueryanalyticshub.DataExchangeIamPolicy`: Retrieves the IAM policy for the dataexchange

> **Note:** `bigqueryanalyticshub.DataExchangeIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.DataExchangeIamBinding` and `bigqueryanalyticshub.DataExchangeIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewDataExchangeIamPolicy(ctx, "policy", &bigqueryanalyticshub.DataExchangeIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamBinding(ctx, "binding", &bigqueryanalyticshub.DataExchangeIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_data\_exchange\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewDataExchangeIamMember(ctx, "member", &bigqueryanalyticshub.DataExchangeIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} * {{project}}/{{location}}/{{data_exchange_id}} * {{location}}/{{data_exchange_id}} * {{data_exchange_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub dataexchange IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}

```

-> **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 GetDataExchangeIamPolicy

func GetDataExchangeIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DataExchangeIamPolicyState, opts ...pulumi.ResourceOption) (*DataExchangeIamPolicy, error)

GetDataExchangeIamPolicy gets an existing DataExchangeIamPolicy 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 NewDataExchangeIamPolicy

func NewDataExchangeIamPolicy(ctx *pulumi.Context,
	name string, args *DataExchangeIamPolicyArgs, opts ...pulumi.ResourceOption) (*DataExchangeIamPolicy, error)

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

func (*DataExchangeIamPolicy) ElementType

func (*DataExchangeIamPolicy) ElementType() reflect.Type

func (*DataExchangeIamPolicy) ToDataExchangeIamPolicyOutput

func (i *DataExchangeIamPolicy) ToDataExchangeIamPolicyOutput() DataExchangeIamPolicyOutput

func (*DataExchangeIamPolicy) ToDataExchangeIamPolicyOutputWithContext

func (i *DataExchangeIamPolicy) ToDataExchangeIamPolicyOutputWithContext(ctx context.Context) DataExchangeIamPolicyOutput

func (*DataExchangeIamPolicy) ToOutput added in v6.65.1

type DataExchangeIamPolicyArgs

type DataExchangeIamPolicyArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a DataExchangeIamPolicy resource.

func (DataExchangeIamPolicyArgs) ElementType

func (DataExchangeIamPolicyArgs) ElementType() reflect.Type

type DataExchangeIamPolicyArray

type DataExchangeIamPolicyArray []DataExchangeIamPolicyInput

func (DataExchangeIamPolicyArray) ElementType

func (DataExchangeIamPolicyArray) ElementType() reflect.Type

func (DataExchangeIamPolicyArray) ToDataExchangeIamPolicyArrayOutput

func (i DataExchangeIamPolicyArray) ToDataExchangeIamPolicyArrayOutput() DataExchangeIamPolicyArrayOutput

func (DataExchangeIamPolicyArray) ToDataExchangeIamPolicyArrayOutputWithContext

func (i DataExchangeIamPolicyArray) ToDataExchangeIamPolicyArrayOutputWithContext(ctx context.Context) DataExchangeIamPolicyArrayOutput

func (DataExchangeIamPolicyArray) ToOutput added in v6.65.1

type DataExchangeIamPolicyArrayInput

type DataExchangeIamPolicyArrayInput interface {
	pulumi.Input

	ToDataExchangeIamPolicyArrayOutput() DataExchangeIamPolicyArrayOutput
	ToDataExchangeIamPolicyArrayOutputWithContext(context.Context) DataExchangeIamPolicyArrayOutput
}

DataExchangeIamPolicyArrayInput is an input type that accepts DataExchangeIamPolicyArray and DataExchangeIamPolicyArrayOutput values. You can construct a concrete instance of `DataExchangeIamPolicyArrayInput` via:

DataExchangeIamPolicyArray{ DataExchangeIamPolicyArgs{...} }

type DataExchangeIamPolicyArrayOutput

type DataExchangeIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (DataExchangeIamPolicyArrayOutput) ElementType

func (DataExchangeIamPolicyArrayOutput) Index

func (DataExchangeIamPolicyArrayOutput) ToDataExchangeIamPolicyArrayOutput

func (o DataExchangeIamPolicyArrayOutput) ToDataExchangeIamPolicyArrayOutput() DataExchangeIamPolicyArrayOutput

func (DataExchangeIamPolicyArrayOutput) ToDataExchangeIamPolicyArrayOutputWithContext

func (o DataExchangeIamPolicyArrayOutput) ToDataExchangeIamPolicyArrayOutputWithContext(ctx context.Context) DataExchangeIamPolicyArrayOutput

func (DataExchangeIamPolicyArrayOutput) ToOutput added in v6.65.1

type DataExchangeIamPolicyInput

type DataExchangeIamPolicyInput interface {
	pulumi.Input

	ToDataExchangeIamPolicyOutput() DataExchangeIamPolicyOutput
	ToDataExchangeIamPolicyOutputWithContext(ctx context.Context) DataExchangeIamPolicyOutput
}

type DataExchangeIamPolicyMap

type DataExchangeIamPolicyMap map[string]DataExchangeIamPolicyInput

func (DataExchangeIamPolicyMap) ElementType

func (DataExchangeIamPolicyMap) ElementType() reflect.Type

func (DataExchangeIamPolicyMap) ToDataExchangeIamPolicyMapOutput

func (i DataExchangeIamPolicyMap) ToDataExchangeIamPolicyMapOutput() DataExchangeIamPolicyMapOutput

func (DataExchangeIamPolicyMap) ToDataExchangeIamPolicyMapOutputWithContext

func (i DataExchangeIamPolicyMap) ToDataExchangeIamPolicyMapOutputWithContext(ctx context.Context) DataExchangeIamPolicyMapOutput

func (DataExchangeIamPolicyMap) ToOutput added in v6.65.1

type DataExchangeIamPolicyMapInput

type DataExchangeIamPolicyMapInput interface {
	pulumi.Input

	ToDataExchangeIamPolicyMapOutput() DataExchangeIamPolicyMapOutput
	ToDataExchangeIamPolicyMapOutputWithContext(context.Context) DataExchangeIamPolicyMapOutput
}

DataExchangeIamPolicyMapInput is an input type that accepts DataExchangeIamPolicyMap and DataExchangeIamPolicyMapOutput values. You can construct a concrete instance of `DataExchangeIamPolicyMapInput` via:

DataExchangeIamPolicyMap{ "key": DataExchangeIamPolicyArgs{...} }

type DataExchangeIamPolicyMapOutput

type DataExchangeIamPolicyMapOutput struct{ *pulumi.OutputState }

func (DataExchangeIamPolicyMapOutput) ElementType

func (DataExchangeIamPolicyMapOutput) MapIndex

func (DataExchangeIamPolicyMapOutput) ToDataExchangeIamPolicyMapOutput

func (o DataExchangeIamPolicyMapOutput) ToDataExchangeIamPolicyMapOutput() DataExchangeIamPolicyMapOutput

func (DataExchangeIamPolicyMapOutput) ToDataExchangeIamPolicyMapOutputWithContext

func (o DataExchangeIamPolicyMapOutput) ToDataExchangeIamPolicyMapOutputWithContext(ctx context.Context) DataExchangeIamPolicyMapOutput

func (DataExchangeIamPolicyMapOutput) ToOutput added in v6.65.1

type DataExchangeIamPolicyOutput

type DataExchangeIamPolicyOutput struct{ *pulumi.OutputState }

func (DataExchangeIamPolicyOutput) DataExchangeId

func (o DataExchangeIamPolicyOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamPolicyOutput) ElementType

func (DataExchangeIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (DataExchangeIamPolicyOutput) Location

The name of the location this data exchange. Used to find the parent resource to bind the IAM policy to

func (DataExchangeIamPolicyOutput) PolicyData

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

func (DataExchangeIamPolicyOutput) Project

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (DataExchangeIamPolicyOutput) ToDataExchangeIamPolicyOutput

func (o DataExchangeIamPolicyOutput) ToDataExchangeIamPolicyOutput() DataExchangeIamPolicyOutput

func (DataExchangeIamPolicyOutput) ToDataExchangeIamPolicyOutputWithContext

func (o DataExchangeIamPolicyOutput) ToDataExchangeIamPolicyOutputWithContext(ctx context.Context) DataExchangeIamPolicyOutput

func (DataExchangeIamPolicyOutput) ToOutput added in v6.65.1

type DataExchangeIamPolicyState

type DataExchangeIamPolicyState struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
}

func (DataExchangeIamPolicyState) ElementType

func (DataExchangeIamPolicyState) ElementType() reflect.Type

type DataExchangeInput

type DataExchangeInput interface {
	pulumi.Input

	ToDataExchangeOutput() DataExchangeOutput
	ToDataExchangeOutputWithContext(ctx context.Context) DataExchangeOutput
}

type DataExchangeMap

type DataExchangeMap map[string]DataExchangeInput

func (DataExchangeMap) ElementType

func (DataExchangeMap) ElementType() reflect.Type

func (DataExchangeMap) ToDataExchangeMapOutput

func (i DataExchangeMap) ToDataExchangeMapOutput() DataExchangeMapOutput

func (DataExchangeMap) ToDataExchangeMapOutputWithContext

func (i DataExchangeMap) ToDataExchangeMapOutputWithContext(ctx context.Context) DataExchangeMapOutput

func (DataExchangeMap) ToOutput added in v6.65.1

type DataExchangeMapInput

type DataExchangeMapInput interface {
	pulumi.Input

	ToDataExchangeMapOutput() DataExchangeMapOutput
	ToDataExchangeMapOutputWithContext(context.Context) DataExchangeMapOutput
}

DataExchangeMapInput is an input type that accepts DataExchangeMap and DataExchangeMapOutput values. You can construct a concrete instance of `DataExchangeMapInput` via:

DataExchangeMap{ "key": DataExchangeArgs{...} }

type DataExchangeMapOutput

type DataExchangeMapOutput struct{ *pulumi.OutputState }

func (DataExchangeMapOutput) ElementType

func (DataExchangeMapOutput) ElementType() reflect.Type

func (DataExchangeMapOutput) MapIndex

func (DataExchangeMapOutput) ToDataExchangeMapOutput

func (o DataExchangeMapOutput) ToDataExchangeMapOutput() DataExchangeMapOutput

func (DataExchangeMapOutput) ToDataExchangeMapOutputWithContext

func (o DataExchangeMapOutput) ToDataExchangeMapOutputWithContext(ctx context.Context) DataExchangeMapOutput

func (DataExchangeMapOutput) ToOutput added in v6.65.1

type DataExchangeOutput

type DataExchangeOutput struct{ *pulumi.OutputState }

func (DataExchangeOutput) DataExchangeId

func (o DataExchangeOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.

func (DataExchangeOutput) Description

func (o DataExchangeOutput) Description() pulumi.StringPtrOutput

Description of the data exchange.

func (DataExchangeOutput) DisplayName

func (o DataExchangeOutput) DisplayName() pulumi.StringOutput

Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and must not start or end with spaces.

***

func (DataExchangeOutput) Documentation

func (o DataExchangeOutput) Documentation() pulumi.StringPtrOutput

Documentation describing the data exchange.

func (DataExchangeOutput) ElementType

func (DataExchangeOutput) ElementType() reflect.Type

func (DataExchangeOutput) Icon

Base64 encoded image representing the data exchange.

func (DataExchangeOutput) ListingCount

func (o DataExchangeOutput) ListingCount() pulumi.IntOutput

Number of listings contained in the data exchange.

func (DataExchangeOutput) Location

func (o DataExchangeOutput) Location() pulumi.StringOutput

The name of the location this data exchange.

func (DataExchangeOutput) Name

The resource name of the data exchange, for example: "projects/myproject/locations/US/dataExchanges/123"

func (DataExchangeOutput) PrimaryContact

func (o DataExchangeOutput) PrimaryContact() pulumi.StringPtrOutput

Email or URL of the primary point of contact of the data exchange.

func (DataExchangeOutput) Project

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (DataExchangeOutput) ToDataExchangeOutput

func (o DataExchangeOutput) ToDataExchangeOutput() DataExchangeOutput

func (DataExchangeOutput) ToDataExchangeOutputWithContext

func (o DataExchangeOutput) ToDataExchangeOutputWithContext(ctx context.Context) DataExchangeOutput

func (DataExchangeOutput) ToOutput added in v6.65.1

type DataExchangeState

type DataExchangeState struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringPtrInput
	// Description of the data exchange.
	Description pulumi.StringPtrInput
	// Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and must not start or end with spaces.
	//
	// ***
	DisplayName pulumi.StringPtrInput
	// Documentation describing the data exchange.
	Documentation pulumi.StringPtrInput
	// Base64 encoded image representing the data exchange.
	Icon pulumi.StringPtrInput
	// Number of listings contained in the data exchange.
	ListingCount pulumi.IntPtrInput
	// The name of the location this data exchange.
	Location pulumi.StringPtrInput
	// The resource name of the data exchange, for example:
	// "projects/myproject/locations/US/dataExchanges/123"
	Name pulumi.StringPtrInput
	// Email or URL of the primary point of contact of the data exchange.
	PrimaryContact pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

func (DataExchangeState) ElementType

func (DataExchangeState) ElementType() reflect.Type

type Listing added in v6.41.0

type Listing struct {
	pulumi.CustomResourceState

	// Shared dataset i.e. BigQuery dataset source.
	// Structure is documented below.
	BigqueryDataset ListingBigqueryDatasetOutput `pulumi:"bigqueryDataset"`
	// Categories of the listing. Up to two categories are allowed.
	Categories pulumi.StringArrayOutput `pulumi:"categories"`
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// Details of the data provider who owns the source data.
	// Structure is documented below.
	DataProvider ListingDataProviderPtrOutput `pulumi:"dataProvider"`
	// Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF).
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Documentation describing the listing.
	Documentation pulumi.StringPtrOutput `pulumi:"documentation"`
	// Base64 encoded image representing the listing.
	Icon pulumi.StringPtrOutput `pulumi:"icon"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	ListingId pulumi.StringOutput `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	Location pulumi.StringOutput `pulumi:"location"`
	// Name of the data provider.
	Name pulumi.StringOutput `pulumi:"name"`
	// Email or URL of the primary point of contact of the listing.
	PrimaryContact pulumi.StringPtrOutput `pulumi:"primaryContact"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Details of the publisher who owns the listing and who can share the source data.
	// Structure is documented below.
	Publisher ListingPublisherPtrOutput `pulumi:"publisher"`
	// Email or URL of the request access of the listing. Subscribers can use this reference to request access.
	RequestAccess pulumi.StringPtrOutput `pulumi:"requestAccess"`
}

A Bigquery Analytics Hub data exchange listing

To get more information about Listing, see:

* [API documentation](https://cloud.google.com/bigquery/docs/reference/analytics-hub/rest/v1/projects.locations.dataExchanges.listings) * How-to Guides

## Example Usage ### Bigquery Analyticshub Listing Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigquery"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		listingDataExchange, err := bigqueryanalyticshub.NewDataExchange(ctx, "listingDataExchange", &bigqueryanalyticshub.DataExchangeArgs{
			Location:       pulumi.String("US"),
			DataExchangeId: pulumi.String("my_data_exchange"),
			DisplayName:    pulumi.String("my_data_exchange"),
			Description:    pulumi.String("example data exchange"),
		})
		if err != nil {
			return err
		}
		listingDataset, err := bigquery.NewDataset(ctx, "listingDataset", &bigquery.DatasetArgs{
			DatasetId:    pulumi.String("my_listing"),
			FriendlyName: pulumi.String("my_listing"),
			Description:  pulumi.String("example data exchange"),
			Location:     pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		_, err = bigqueryanalyticshub.NewListing(ctx, "listingListing", &bigqueryanalyticshub.ListingArgs{
			Location:       pulumi.String("US"),
			DataExchangeId: listingDataExchange.DataExchangeId,
			ListingId:      pulumi.String("my_listing"),
			DisplayName:    pulumi.String("my_listing"),
			Description:    pulumi.String("example data exchange"),
			BigqueryDataset: &bigqueryanalyticshub.ListingBigqueryDatasetArgs{
				Dataset: listingDataset.ID(),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Listing can be imported using any of these accepted formats

```sh

$ pulumi import gcp:bigqueryanalyticshub/listing:Listing default projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}}

```

```sh

$ pulumi import gcp:bigqueryanalyticshub/listing:Listing default {{project}}/{{location}}/{{data_exchange_id}}/{{listing_id}}

```

```sh

$ pulumi import gcp:bigqueryanalyticshub/listing:Listing default {{location}}/{{data_exchange_id}}/{{listing_id}}

```

func GetListing added in v6.41.0

func GetListing(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ListingState, opts ...pulumi.ResourceOption) (*Listing, error)

GetListing gets an existing Listing 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 NewListing added in v6.41.0

func NewListing(ctx *pulumi.Context,
	name string, args *ListingArgs, opts ...pulumi.ResourceOption) (*Listing, error)

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

func (*Listing) ElementType added in v6.41.0

func (*Listing) ElementType() reflect.Type

func (*Listing) ToListingOutput added in v6.41.0

func (i *Listing) ToListingOutput() ListingOutput

func (*Listing) ToListingOutputWithContext added in v6.41.0

func (i *Listing) ToListingOutputWithContext(ctx context.Context) ListingOutput

func (*Listing) ToOutput added in v6.65.1

func (i *Listing) ToOutput(ctx context.Context) pulumix.Output[*Listing]

type ListingArgs added in v6.41.0

type ListingArgs struct {
	// Shared dataset i.e. BigQuery dataset source.
	// Structure is documented below.
	BigqueryDataset ListingBigqueryDatasetInput
	// Categories of the listing. Up to two categories are allowed.
	Categories pulumi.StringArrayInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringInput
	// Details of the data provider who owns the source data.
	// Structure is documented below.
	DataProvider ListingDataProviderPtrInput
	// Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF).
	Description pulumi.StringPtrInput
	// Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces.
	DisplayName pulumi.StringInput
	// Documentation describing the listing.
	Documentation pulumi.StringPtrInput
	// Base64 encoded image representing the listing.
	Icon pulumi.StringPtrInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	ListingId pulumi.StringInput
	// The name of the location this data exchange listing.
	Location pulumi.StringInput
	// Email or URL of the primary point of contact of the listing.
	PrimaryContact pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Details of the publisher who owns the listing and who can share the source data.
	// Structure is documented below.
	Publisher ListingPublisherPtrInput
	// Email or URL of the request access of the listing. Subscribers can use this reference to request access.
	RequestAccess pulumi.StringPtrInput
}

The set of arguments for constructing a Listing resource.

func (ListingArgs) ElementType added in v6.41.0

func (ListingArgs) ElementType() reflect.Type

type ListingArray added in v6.41.0

type ListingArray []ListingInput

func (ListingArray) ElementType added in v6.41.0

func (ListingArray) ElementType() reflect.Type

func (ListingArray) ToListingArrayOutput added in v6.41.0

func (i ListingArray) ToListingArrayOutput() ListingArrayOutput

func (ListingArray) ToListingArrayOutputWithContext added in v6.41.0

func (i ListingArray) ToListingArrayOutputWithContext(ctx context.Context) ListingArrayOutput

func (ListingArray) ToOutput added in v6.65.1

func (i ListingArray) ToOutput(ctx context.Context) pulumix.Output[[]*Listing]

type ListingArrayInput added in v6.41.0

type ListingArrayInput interface {
	pulumi.Input

	ToListingArrayOutput() ListingArrayOutput
	ToListingArrayOutputWithContext(context.Context) ListingArrayOutput
}

ListingArrayInput is an input type that accepts ListingArray and ListingArrayOutput values. You can construct a concrete instance of `ListingArrayInput` via:

ListingArray{ ListingArgs{...} }

type ListingArrayOutput added in v6.41.0

type ListingArrayOutput struct{ *pulumi.OutputState }

func (ListingArrayOutput) ElementType added in v6.41.0

func (ListingArrayOutput) ElementType() reflect.Type

func (ListingArrayOutput) Index added in v6.41.0

func (ListingArrayOutput) ToListingArrayOutput added in v6.41.0

func (o ListingArrayOutput) ToListingArrayOutput() ListingArrayOutput

func (ListingArrayOutput) ToListingArrayOutputWithContext added in v6.41.0

func (o ListingArrayOutput) ToListingArrayOutputWithContext(ctx context.Context) ListingArrayOutput

func (ListingArrayOutput) ToOutput added in v6.65.1

type ListingBigqueryDataset added in v6.41.0

type ListingBigqueryDataset struct {
	// Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
	//
	// ***
	Dataset string `pulumi:"dataset"`
}

type ListingBigqueryDatasetArgs added in v6.41.0

type ListingBigqueryDatasetArgs struct {
	// Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
	//
	// ***
	Dataset pulumi.StringInput `pulumi:"dataset"`
}

func (ListingBigqueryDatasetArgs) ElementType added in v6.41.0

func (ListingBigqueryDatasetArgs) ElementType() reflect.Type

func (ListingBigqueryDatasetArgs) ToListingBigqueryDatasetOutput added in v6.41.0

func (i ListingBigqueryDatasetArgs) ToListingBigqueryDatasetOutput() ListingBigqueryDatasetOutput

func (ListingBigqueryDatasetArgs) ToListingBigqueryDatasetOutputWithContext added in v6.41.0

func (i ListingBigqueryDatasetArgs) ToListingBigqueryDatasetOutputWithContext(ctx context.Context) ListingBigqueryDatasetOutput

func (ListingBigqueryDatasetArgs) ToListingBigqueryDatasetPtrOutput added in v6.41.0

func (i ListingBigqueryDatasetArgs) ToListingBigqueryDatasetPtrOutput() ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetArgs) ToListingBigqueryDatasetPtrOutputWithContext added in v6.41.0

func (i ListingBigqueryDatasetArgs) ToListingBigqueryDatasetPtrOutputWithContext(ctx context.Context) ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetArgs) ToOutput added in v6.65.1

type ListingBigqueryDatasetInput added in v6.41.0

type ListingBigqueryDatasetInput interface {
	pulumi.Input

	ToListingBigqueryDatasetOutput() ListingBigqueryDatasetOutput
	ToListingBigqueryDatasetOutputWithContext(context.Context) ListingBigqueryDatasetOutput
}

ListingBigqueryDatasetInput is an input type that accepts ListingBigqueryDatasetArgs and ListingBigqueryDatasetOutput values. You can construct a concrete instance of `ListingBigqueryDatasetInput` via:

ListingBigqueryDatasetArgs{...}

type ListingBigqueryDatasetOutput added in v6.41.0

type ListingBigqueryDatasetOutput struct{ *pulumi.OutputState }

func (ListingBigqueryDatasetOutput) Dataset added in v6.41.0

Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123

***

func (ListingBigqueryDatasetOutput) ElementType added in v6.41.0

func (ListingBigqueryDatasetOutput) ToListingBigqueryDatasetOutput added in v6.41.0

func (o ListingBigqueryDatasetOutput) ToListingBigqueryDatasetOutput() ListingBigqueryDatasetOutput

func (ListingBigqueryDatasetOutput) ToListingBigqueryDatasetOutputWithContext added in v6.41.0

func (o ListingBigqueryDatasetOutput) ToListingBigqueryDatasetOutputWithContext(ctx context.Context) ListingBigqueryDatasetOutput

func (ListingBigqueryDatasetOutput) ToListingBigqueryDatasetPtrOutput added in v6.41.0

func (o ListingBigqueryDatasetOutput) ToListingBigqueryDatasetPtrOutput() ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetOutput) ToListingBigqueryDatasetPtrOutputWithContext added in v6.41.0

func (o ListingBigqueryDatasetOutput) ToListingBigqueryDatasetPtrOutputWithContext(ctx context.Context) ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetOutput) ToOutput added in v6.65.1

type ListingBigqueryDatasetPtrInput added in v6.41.0

type ListingBigqueryDatasetPtrInput interface {
	pulumi.Input

	ToListingBigqueryDatasetPtrOutput() ListingBigqueryDatasetPtrOutput
	ToListingBigqueryDatasetPtrOutputWithContext(context.Context) ListingBigqueryDatasetPtrOutput
}

ListingBigqueryDatasetPtrInput is an input type that accepts ListingBigqueryDatasetArgs, ListingBigqueryDatasetPtr and ListingBigqueryDatasetPtrOutput values. You can construct a concrete instance of `ListingBigqueryDatasetPtrInput` via:

        ListingBigqueryDatasetArgs{...}

or:

        nil

func ListingBigqueryDatasetPtr added in v6.41.0

func ListingBigqueryDatasetPtr(v *ListingBigqueryDatasetArgs) ListingBigqueryDatasetPtrInput

type ListingBigqueryDatasetPtrOutput added in v6.41.0

type ListingBigqueryDatasetPtrOutput struct{ *pulumi.OutputState }

func (ListingBigqueryDatasetPtrOutput) Dataset added in v6.41.0

Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123

***

func (ListingBigqueryDatasetPtrOutput) Elem added in v6.41.0

func (ListingBigqueryDatasetPtrOutput) ElementType added in v6.41.0

func (ListingBigqueryDatasetPtrOutput) ToListingBigqueryDatasetPtrOutput added in v6.41.0

func (o ListingBigqueryDatasetPtrOutput) ToListingBigqueryDatasetPtrOutput() ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetPtrOutput) ToListingBigqueryDatasetPtrOutputWithContext added in v6.41.0

func (o ListingBigqueryDatasetPtrOutput) ToListingBigqueryDatasetPtrOutputWithContext(ctx context.Context) ListingBigqueryDatasetPtrOutput

func (ListingBigqueryDatasetPtrOutput) ToOutput added in v6.65.1

type ListingDataProvider added in v6.41.0

type ListingDataProvider struct {
	// Name of the data provider.
	Name string `pulumi:"name"`
	// Email or URL of the data provider.
	PrimaryContact *string `pulumi:"primaryContact"`
}

type ListingDataProviderArgs added in v6.41.0

type ListingDataProviderArgs struct {
	// Name of the data provider.
	Name pulumi.StringInput `pulumi:"name"`
	// Email or URL of the data provider.
	PrimaryContact pulumi.StringPtrInput `pulumi:"primaryContact"`
}

func (ListingDataProviderArgs) ElementType added in v6.41.0

func (ListingDataProviderArgs) ElementType() reflect.Type

func (ListingDataProviderArgs) ToListingDataProviderOutput added in v6.41.0

func (i ListingDataProviderArgs) ToListingDataProviderOutput() ListingDataProviderOutput

func (ListingDataProviderArgs) ToListingDataProviderOutputWithContext added in v6.41.0

func (i ListingDataProviderArgs) ToListingDataProviderOutputWithContext(ctx context.Context) ListingDataProviderOutput

func (ListingDataProviderArgs) ToListingDataProviderPtrOutput added in v6.41.0

func (i ListingDataProviderArgs) ToListingDataProviderPtrOutput() ListingDataProviderPtrOutput

func (ListingDataProviderArgs) ToListingDataProviderPtrOutputWithContext added in v6.41.0

func (i ListingDataProviderArgs) ToListingDataProviderPtrOutputWithContext(ctx context.Context) ListingDataProviderPtrOutput

func (ListingDataProviderArgs) ToOutput added in v6.65.1

type ListingDataProviderInput added in v6.41.0

type ListingDataProviderInput interface {
	pulumi.Input

	ToListingDataProviderOutput() ListingDataProviderOutput
	ToListingDataProviderOutputWithContext(context.Context) ListingDataProviderOutput
}

ListingDataProviderInput is an input type that accepts ListingDataProviderArgs and ListingDataProviderOutput values. You can construct a concrete instance of `ListingDataProviderInput` via:

ListingDataProviderArgs{...}

type ListingDataProviderOutput added in v6.41.0

type ListingDataProviderOutput struct{ *pulumi.OutputState }

func (ListingDataProviderOutput) ElementType added in v6.41.0

func (ListingDataProviderOutput) ElementType() reflect.Type

func (ListingDataProviderOutput) Name added in v6.41.0

Name of the data provider.

func (ListingDataProviderOutput) PrimaryContact added in v6.41.0

Email or URL of the data provider.

func (ListingDataProviderOutput) ToListingDataProviderOutput added in v6.41.0

func (o ListingDataProviderOutput) ToListingDataProviderOutput() ListingDataProviderOutput

func (ListingDataProviderOutput) ToListingDataProviderOutputWithContext added in v6.41.0

func (o ListingDataProviderOutput) ToListingDataProviderOutputWithContext(ctx context.Context) ListingDataProviderOutput

func (ListingDataProviderOutput) ToListingDataProviderPtrOutput added in v6.41.0

func (o ListingDataProviderOutput) ToListingDataProviderPtrOutput() ListingDataProviderPtrOutput

func (ListingDataProviderOutput) ToListingDataProviderPtrOutputWithContext added in v6.41.0

func (o ListingDataProviderOutput) ToListingDataProviderPtrOutputWithContext(ctx context.Context) ListingDataProviderPtrOutput

func (ListingDataProviderOutput) ToOutput added in v6.65.1

type ListingDataProviderPtrInput added in v6.41.0

type ListingDataProviderPtrInput interface {
	pulumi.Input

	ToListingDataProviderPtrOutput() ListingDataProviderPtrOutput
	ToListingDataProviderPtrOutputWithContext(context.Context) ListingDataProviderPtrOutput
}

ListingDataProviderPtrInput is an input type that accepts ListingDataProviderArgs, ListingDataProviderPtr and ListingDataProviderPtrOutput values. You can construct a concrete instance of `ListingDataProviderPtrInput` via:

        ListingDataProviderArgs{...}

or:

        nil

func ListingDataProviderPtr added in v6.41.0

func ListingDataProviderPtr(v *ListingDataProviderArgs) ListingDataProviderPtrInput

type ListingDataProviderPtrOutput added in v6.41.0

type ListingDataProviderPtrOutput struct{ *pulumi.OutputState }

func (ListingDataProviderPtrOutput) Elem added in v6.41.0

func (ListingDataProviderPtrOutput) ElementType added in v6.41.0

func (ListingDataProviderPtrOutput) Name added in v6.41.0

Name of the data provider.

func (ListingDataProviderPtrOutput) PrimaryContact added in v6.41.0

Email or URL of the data provider.

func (ListingDataProviderPtrOutput) ToListingDataProviderPtrOutput added in v6.41.0

func (o ListingDataProviderPtrOutput) ToListingDataProviderPtrOutput() ListingDataProviderPtrOutput

func (ListingDataProviderPtrOutput) ToListingDataProviderPtrOutputWithContext added in v6.41.0

func (o ListingDataProviderPtrOutput) ToListingDataProviderPtrOutputWithContext(ctx context.Context) ListingDataProviderPtrOutput

func (ListingDataProviderPtrOutput) ToOutput added in v6.65.1

type ListingIamBinding added in v6.41.0

type ListingIamBinding struct {
	pulumi.CustomResourceState

	Condition ListingIamBindingConditionPtrOutput `pulumi:"condition"`
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringOutput `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput      `pulumi:"location"`
	Members  pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub Listing. Each of these resources serves a different use case:

* `bigqueryanalyticshub.ListingIamPolicy`: Authoritative. Sets the IAM policy for the listing and replaces any existing policy already attached. * `bigqueryanalyticshub.ListingIamBinding`: 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 listing are preserved. * `bigqueryanalyticshub.ListingIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the listing are preserved.

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

* `bigqueryanalyticshub.ListingIamPolicy`: Retrieves the IAM policy for the listing

> **Note:** `bigqueryanalyticshub.ListingIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.ListingIamBinding` and `bigqueryanalyticshub.ListingIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_listing\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewListingIamPolicy(ctx, "policy", &bigqueryanalyticshub.ListingIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamBinding(ctx, "binding", &bigqueryanalyticshub.ListingIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamMember(ctx, "member", &bigqueryanalyticshub.ListingIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} * {{project}}/{{location}}/{{data_exchange_id}}/{{listing_id}} * {{location}}/{{data_exchange_id}}/{{listing_id}} * {{listing_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub listing IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}}

```

-> **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 GetListingIamBinding added in v6.41.0

func GetListingIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ListingIamBindingState, opts ...pulumi.ResourceOption) (*ListingIamBinding, error)

GetListingIamBinding gets an existing ListingIamBinding 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 NewListingIamBinding added in v6.41.0

func NewListingIamBinding(ctx *pulumi.Context,
	name string, args *ListingIamBindingArgs, opts ...pulumi.ResourceOption) (*ListingIamBinding, error)

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

func (*ListingIamBinding) ElementType added in v6.41.0

func (*ListingIamBinding) ElementType() reflect.Type

func (*ListingIamBinding) ToListingIamBindingOutput added in v6.41.0

func (i *ListingIamBinding) ToListingIamBindingOutput() ListingIamBindingOutput

func (*ListingIamBinding) ToListingIamBindingOutputWithContext added in v6.41.0

func (i *ListingIamBinding) ToListingIamBindingOutputWithContext(ctx context.Context) ListingIamBindingOutput

func (*ListingIamBinding) ToOutput added in v6.65.1

type ListingIamBindingArgs added in v6.41.0

type ListingIamBindingArgs struct {
	Condition ListingIamBindingConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a ListingIamBinding resource.

func (ListingIamBindingArgs) ElementType added in v6.41.0

func (ListingIamBindingArgs) ElementType() reflect.Type

type ListingIamBindingArray added in v6.41.0

type ListingIamBindingArray []ListingIamBindingInput

func (ListingIamBindingArray) ElementType added in v6.41.0

func (ListingIamBindingArray) ElementType() reflect.Type

func (ListingIamBindingArray) ToListingIamBindingArrayOutput added in v6.41.0

func (i ListingIamBindingArray) ToListingIamBindingArrayOutput() ListingIamBindingArrayOutput

func (ListingIamBindingArray) ToListingIamBindingArrayOutputWithContext added in v6.41.0

func (i ListingIamBindingArray) ToListingIamBindingArrayOutputWithContext(ctx context.Context) ListingIamBindingArrayOutput

func (ListingIamBindingArray) ToOutput added in v6.65.1

type ListingIamBindingArrayInput added in v6.41.0

type ListingIamBindingArrayInput interface {
	pulumi.Input

	ToListingIamBindingArrayOutput() ListingIamBindingArrayOutput
	ToListingIamBindingArrayOutputWithContext(context.Context) ListingIamBindingArrayOutput
}

ListingIamBindingArrayInput is an input type that accepts ListingIamBindingArray and ListingIamBindingArrayOutput values. You can construct a concrete instance of `ListingIamBindingArrayInput` via:

ListingIamBindingArray{ ListingIamBindingArgs{...} }

type ListingIamBindingArrayOutput added in v6.41.0

type ListingIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ListingIamBindingArrayOutput) ElementType added in v6.41.0

func (ListingIamBindingArrayOutput) Index added in v6.41.0

func (ListingIamBindingArrayOutput) ToListingIamBindingArrayOutput added in v6.41.0

func (o ListingIamBindingArrayOutput) ToListingIamBindingArrayOutput() ListingIamBindingArrayOutput

func (ListingIamBindingArrayOutput) ToListingIamBindingArrayOutputWithContext added in v6.41.0

func (o ListingIamBindingArrayOutput) ToListingIamBindingArrayOutputWithContext(ctx context.Context) ListingIamBindingArrayOutput

func (ListingIamBindingArrayOutput) ToOutput added in v6.65.1

type ListingIamBindingCondition added in v6.41.0

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

type ListingIamBindingConditionArgs added in v6.41.0

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

func (ListingIamBindingConditionArgs) ElementType added in v6.41.0

func (ListingIamBindingConditionArgs) ToListingIamBindingConditionOutput added in v6.41.0

func (i ListingIamBindingConditionArgs) ToListingIamBindingConditionOutput() ListingIamBindingConditionOutput

func (ListingIamBindingConditionArgs) ToListingIamBindingConditionOutputWithContext added in v6.41.0

func (i ListingIamBindingConditionArgs) ToListingIamBindingConditionOutputWithContext(ctx context.Context) ListingIamBindingConditionOutput

func (ListingIamBindingConditionArgs) ToListingIamBindingConditionPtrOutput added in v6.41.0

func (i ListingIamBindingConditionArgs) ToListingIamBindingConditionPtrOutput() ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionArgs) ToListingIamBindingConditionPtrOutputWithContext added in v6.41.0

func (i ListingIamBindingConditionArgs) ToListingIamBindingConditionPtrOutputWithContext(ctx context.Context) ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionArgs) ToOutput added in v6.65.1

type ListingIamBindingConditionInput added in v6.41.0

type ListingIamBindingConditionInput interface {
	pulumi.Input

	ToListingIamBindingConditionOutput() ListingIamBindingConditionOutput
	ToListingIamBindingConditionOutputWithContext(context.Context) ListingIamBindingConditionOutput
}

ListingIamBindingConditionInput is an input type that accepts ListingIamBindingConditionArgs and ListingIamBindingConditionOutput values. You can construct a concrete instance of `ListingIamBindingConditionInput` via:

ListingIamBindingConditionArgs{...}

type ListingIamBindingConditionOutput added in v6.41.0

type ListingIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ListingIamBindingConditionOutput) Description added in v6.41.0

func (ListingIamBindingConditionOutput) ElementType added in v6.41.0

func (ListingIamBindingConditionOutput) Expression added in v6.41.0

func (ListingIamBindingConditionOutput) Title added in v6.41.0

func (ListingIamBindingConditionOutput) ToListingIamBindingConditionOutput added in v6.41.0

func (o ListingIamBindingConditionOutput) ToListingIamBindingConditionOutput() ListingIamBindingConditionOutput

func (ListingIamBindingConditionOutput) ToListingIamBindingConditionOutputWithContext added in v6.41.0

func (o ListingIamBindingConditionOutput) ToListingIamBindingConditionOutputWithContext(ctx context.Context) ListingIamBindingConditionOutput

func (ListingIamBindingConditionOutput) ToListingIamBindingConditionPtrOutput added in v6.41.0

func (o ListingIamBindingConditionOutput) ToListingIamBindingConditionPtrOutput() ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionOutput) ToListingIamBindingConditionPtrOutputWithContext added in v6.41.0

func (o ListingIamBindingConditionOutput) ToListingIamBindingConditionPtrOutputWithContext(ctx context.Context) ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionOutput) ToOutput added in v6.65.1

type ListingIamBindingConditionPtrInput added in v6.41.0

type ListingIamBindingConditionPtrInput interface {
	pulumi.Input

	ToListingIamBindingConditionPtrOutput() ListingIamBindingConditionPtrOutput
	ToListingIamBindingConditionPtrOutputWithContext(context.Context) ListingIamBindingConditionPtrOutput
}

ListingIamBindingConditionPtrInput is an input type that accepts ListingIamBindingConditionArgs, ListingIamBindingConditionPtr and ListingIamBindingConditionPtrOutput values. You can construct a concrete instance of `ListingIamBindingConditionPtrInput` via:

        ListingIamBindingConditionArgs{...}

or:

        nil

func ListingIamBindingConditionPtr added in v6.41.0

type ListingIamBindingConditionPtrOutput added in v6.41.0

type ListingIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ListingIamBindingConditionPtrOutput) Description added in v6.41.0

func (ListingIamBindingConditionPtrOutput) Elem added in v6.41.0

func (ListingIamBindingConditionPtrOutput) ElementType added in v6.41.0

func (ListingIamBindingConditionPtrOutput) Expression added in v6.41.0

func (ListingIamBindingConditionPtrOutput) Title added in v6.41.0

func (ListingIamBindingConditionPtrOutput) ToListingIamBindingConditionPtrOutput added in v6.41.0

func (o ListingIamBindingConditionPtrOutput) ToListingIamBindingConditionPtrOutput() ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionPtrOutput) ToListingIamBindingConditionPtrOutputWithContext added in v6.41.0

func (o ListingIamBindingConditionPtrOutput) ToListingIamBindingConditionPtrOutputWithContext(ctx context.Context) ListingIamBindingConditionPtrOutput

func (ListingIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type ListingIamBindingInput added in v6.41.0

type ListingIamBindingInput interface {
	pulumi.Input

	ToListingIamBindingOutput() ListingIamBindingOutput
	ToListingIamBindingOutputWithContext(ctx context.Context) ListingIamBindingOutput
}

type ListingIamBindingMap added in v6.41.0

type ListingIamBindingMap map[string]ListingIamBindingInput

func (ListingIamBindingMap) ElementType added in v6.41.0

func (ListingIamBindingMap) ElementType() reflect.Type

func (ListingIamBindingMap) ToListingIamBindingMapOutput added in v6.41.0

func (i ListingIamBindingMap) ToListingIamBindingMapOutput() ListingIamBindingMapOutput

func (ListingIamBindingMap) ToListingIamBindingMapOutputWithContext added in v6.41.0

func (i ListingIamBindingMap) ToListingIamBindingMapOutputWithContext(ctx context.Context) ListingIamBindingMapOutput

func (ListingIamBindingMap) ToOutput added in v6.65.1

type ListingIamBindingMapInput added in v6.41.0

type ListingIamBindingMapInput interface {
	pulumi.Input

	ToListingIamBindingMapOutput() ListingIamBindingMapOutput
	ToListingIamBindingMapOutputWithContext(context.Context) ListingIamBindingMapOutput
}

ListingIamBindingMapInput is an input type that accepts ListingIamBindingMap and ListingIamBindingMapOutput values. You can construct a concrete instance of `ListingIamBindingMapInput` via:

ListingIamBindingMap{ "key": ListingIamBindingArgs{...} }

type ListingIamBindingMapOutput added in v6.41.0

type ListingIamBindingMapOutput struct{ *pulumi.OutputState }

func (ListingIamBindingMapOutput) ElementType added in v6.41.0

func (ListingIamBindingMapOutput) ElementType() reflect.Type

func (ListingIamBindingMapOutput) MapIndex added in v6.41.0

func (ListingIamBindingMapOutput) ToListingIamBindingMapOutput added in v6.41.0

func (o ListingIamBindingMapOutput) ToListingIamBindingMapOutput() ListingIamBindingMapOutput

func (ListingIamBindingMapOutput) ToListingIamBindingMapOutputWithContext added in v6.41.0

func (o ListingIamBindingMapOutput) ToListingIamBindingMapOutputWithContext(ctx context.Context) ListingIamBindingMapOutput

func (ListingIamBindingMapOutput) ToOutput added in v6.65.1

type ListingIamBindingOutput added in v6.41.0

type ListingIamBindingOutput struct{ *pulumi.OutputState }

func (ListingIamBindingOutput) Condition added in v6.41.0

func (ListingIamBindingOutput) DataExchangeId added in v6.41.0

func (o ListingIamBindingOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamBindingOutput) ElementType added in v6.41.0

func (ListingIamBindingOutput) ElementType() reflect.Type

func (ListingIamBindingOutput) Etag added in v6.41.0

(Computed) The etag of the IAM policy.

func (ListingIamBindingOutput) ListingId added in v6.41.0

The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamBindingOutput) Location added in v6.41.0

The name of the location this data exchange listing. Used to find the parent resource to bind the IAM policy to

func (ListingIamBindingOutput) Members added in v6.41.0

func (ListingIamBindingOutput) Project added in v6.41.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (ListingIamBindingOutput) Role added in v6.41.0

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

func (ListingIamBindingOutput) ToListingIamBindingOutput added in v6.41.0

func (o ListingIamBindingOutput) ToListingIamBindingOutput() ListingIamBindingOutput

func (ListingIamBindingOutput) ToListingIamBindingOutputWithContext added in v6.41.0

func (o ListingIamBindingOutput) ToListingIamBindingOutputWithContext(ctx context.Context) ListingIamBindingOutput

func (ListingIamBindingOutput) ToOutput added in v6.65.1

type ListingIamBindingState added in v6.41.0

type ListingIamBindingState struct {
	Condition ListingIamBindingConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringPtrInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (ListingIamBindingState) ElementType added in v6.41.0

func (ListingIamBindingState) ElementType() reflect.Type

type ListingIamMember added in v6.41.0

type ListingIamMember struct {
	pulumi.CustomResourceState

	Condition ListingIamMemberConditionPtrOutput `pulumi:"condition"`
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringOutput `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput `pulumi:"location"`
	Member   pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub Listing. Each of these resources serves a different use case:

* `bigqueryanalyticshub.ListingIamPolicy`: Authoritative. Sets the IAM policy for the listing and replaces any existing policy already attached. * `bigqueryanalyticshub.ListingIamBinding`: 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 listing are preserved. * `bigqueryanalyticshub.ListingIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the listing are preserved.

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

* `bigqueryanalyticshub.ListingIamPolicy`: Retrieves the IAM policy for the listing

> **Note:** `bigqueryanalyticshub.ListingIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.ListingIamBinding` and `bigqueryanalyticshub.ListingIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_listing\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewListingIamPolicy(ctx, "policy", &bigqueryanalyticshub.ListingIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamBinding(ctx, "binding", &bigqueryanalyticshub.ListingIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamMember(ctx, "member", &bigqueryanalyticshub.ListingIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} * {{project}}/{{location}}/{{data_exchange_id}}/{{listing_id}} * {{location}}/{{data_exchange_id}}/{{listing_id}} * {{listing_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub listing IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}}

```

-> **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 GetListingIamMember added in v6.41.0

func GetListingIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ListingIamMemberState, opts ...pulumi.ResourceOption) (*ListingIamMember, error)

GetListingIamMember gets an existing ListingIamMember 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 NewListingIamMember added in v6.41.0

func NewListingIamMember(ctx *pulumi.Context,
	name string, args *ListingIamMemberArgs, opts ...pulumi.ResourceOption) (*ListingIamMember, error)

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

func (*ListingIamMember) ElementType added in v6.41.0

func (*ListingIamMember) ElementType() reflect.Type

func (*ListingIamMember) ToListingIamMemberOutput added in v6.41.0

func (i *ListingIamMember) ToListingIamMemberOutput() ListingIamMemberOutput

func (*ListingIamMember) ToListingIamMemberOutputWithContext added in v6.41.0

func (i *ListingIamMember) ToListingIamMemberOutputWithContext(ctx context.Context) ListingIamMemberOutput

func (*ListingIamMember) ToOutput added in v6.65.1

type ListingIamMemberArgs added in v6.41.0

type ListingIamMemberArgs struct {
	Condition ListingIamMemberConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Member   pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a ListingIamMember resource.

func (ListingIamMemberArgs) ElementType added in v6.41.0

func (ListingIamMemberArgs) ElementType() reflect.Type

type ListingIamMemberArray added in v6.41.0

type ListingIamMemberArray []ListingIamMemberInput

func (ListingIamMemberArray) ElementType added in v6.41.0

func (ListingIamMemberArray) ElementType() reflect.Type

func (ListingIamMemberArray) ToListingIamMemberArrayOutput added in v6.41.0

func (i ListingIamMemberArray) ToListingIamMemberArrayOutput() ListingIamMemberArrayOutput

func (ListingIamMemberArray) ToListingIamMemberArrayOutputWithContext added in v6.41.0

func (i ListingIamMemberArray) ToListingIamMemberArrayOutputWithContext(ctx context.Context) ListingIamMemberArrayOutput

func (ListingIamMemberArray) ToOutput added in v6.65.1

type ListingIamMemberArrayInput added in v6.41.0

type ListingIamMemberArrayInput interface {
	pulumi.Input

	ToListingIamMemberArrayOutput() ListingIamMemberArrayOutput
	ToListingIamMemberArrayOutputWithContext(context.Context) ListingIamMemberArrayOutput
}

ListingIamMemberArrayInput is an input type that accepts ListingIamMemberArray and ListingIamMemberArrayOutput values. You can construct a concrete instance of `ListingIamMemberArrayInput` via:

ListingIamMemberArray{ ListingIamMemberArgs{...} }

type ListingIamMemberArrayOutput added in v6.41.0

type ListingIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ListingIamMemberArrayOutput) ElementType added in v6.41.0

func (ListingIamMemberArrayOutput) Index added in v6.41.0

func (ListingIamMemberArrayOutput) ToListingIamMemberArrayOutput added in v6.41.0

func (o ListingIamMemberArrayOutput) ToListingIamMemberArrayOutput() ListingIamMemberArrayOutput

func (ListingIamMemberArrayOutput) ToListingIamMemberArrayOutputWithContext added in v6.41.0

func (o ListingIamMemberArrayOutput) ToListingIamMemberArrayOutputWithContext(ctx context.Context) ListingIamMemberArrayOutput

func (ListingIamMemberArrayOutput) ToOutput added in v6.65.1

type ListingIamMemberCondition added in v6.41.0

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

type ListingIamMemberConditionArgs added in v6.41.0

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

func (ListingIamMemberConditionArgs) ElementType added in v6.41.0

func (ListingIamMemberConditionArgs) ToListingIamMemberConditionOutput added in v6.41.0

func (i ListingIamMemberConditionArgs) ToListingIamMemberConditionOutput() ListingIamMemberConditionOutput

func (ListingIamMemberConditionArgs) ToListingIamMemberConditionOutputWithContext added in v6.41.0

func (i ListingIamMemberConditionArgs) ToListingIamMemberConditionOutputWithContext(ctx context.Context) ListingIamMemberConditionOutput

func (ListingIamMemberConditionArgs) ToListingIamMemberConditionPtrOutput added in v6.41.0

func (i ListingIamMemberConditionArgs) ToListingIamMemberConditionPtrOutput() ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionArgs) ToListingIamMemberConditionPtrOutputWithContext added in v6.41.0

func (i ListingIamMemberConditionArgs) ToListingIamMemberConditionPtrOutputWithContext(ctx context.Context) ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionArgs) ToOutput added in v6.65.1

type ListingIamMemberConditionInput added in v6.41.0

type ListingIamMemberConditionInput interface {
	pulumi.Input

	ToListingIamMemberConditionOutput() ListingIamMemberConditionOutput
	ToListingIamMemberConditionOutputWithContext(context.Context) ListingIamMemberConditionOutput
}

ListingIamMemberConditionInput is an input type that accepts ListingIamMemberConditionArgs and ListingIamMemberConditionOutput values. You can construct a concrete instance of `ListingIamMemberConditionInput` via:

ListingIamMemberConditionArgs{...}

type ListingIamMemberConditionOutput added in v6.41.0

type ListingIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ListingIamMemberConditionOutput) Description added in v6.41.0

func (ListingIamMemberConditionOutput) ElementType added in v6.41.0

func (ListingIamMemberConditionOutput) Expression added in v6.41.0

func (ListingIamMemberConditionOutput) Title added in v6.41.0

func (ListingIamMemberConditionOutput) ToListingIamMemberConditionOutput added in v6.41.0

func (o ListingIamMemberConditionOutput) ToListingIamMemberConditionOutput() ListingIamMemberConditionOutput

func (ListingIamMemberConditionOutput) ToListingIamMemberConditionOutputWithContext added in v6.41.0

func (o ListingIamMemberConditionOutput) ToListingIamMemberConditionOutputWithContext(ctx context.Context) ListingIamMemberConditionOutput

func (ListingIamMemberConditionOutput) ToListingIamMemberConditionPtrOutput added in v6.41.0

func (o ListingIamMemberConditionOutput) ToListingIamMemberConditionPtrOutput() ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionOutput) ToListingIamMemberConditionPtrOutputWithContext added in v6.41.0

func (o ListingIamMemberConditionOutput) ToListingIamMemberConditionPtrOutputWithContext(ctx context.Context) ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionOutput) ToOutput added in v6.65.1

type ListingIamMemberConditionPtrInput added in v6.41.0

type ListingIamMemberConditionPtrInput interface {
	pulumi.Input

	ToListingIamMemberConditionPtrOutput() ListingIamMemberConditionPtrOutput
	ToListingIamMemberConditionPtrOutputWithContext(context.Context) ListingIamMemberConditionPtrOutput
}

ListingIamMemberConditionPtrInput is an input type that accepts ListingIamMemberConditionArgs, ListingIamMemberConditionPtr and ListingIamMemberConditionPtrOutput values. You can construct a concrete instance of `ListingIamMemberConditionPtrInput` via:

        ListingIamMemberConditionArgs{...}

or:

        nil

func ListingIamMemberConditionPtr added in v6.41.0

type ListingIamMemberConditionPtrOutput added in v6.41.0

type ListingIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ListingIamMemberConditionPtrOutput) Description added in v6.41.0

func (ListingIamMemberConditionPtrOutput) Elem added in v6.41.0

func (ListingIamMemberConditionPtrOutput) ElementType added in v6.41.0

func (ListingIamMemberConditionPtrOutput) Expression added in v6.41.0

func (ListingIamMemberConditionPtrOutput) Title added in v6.41.0

func (ListingIamMemberConditionPtrOutput) ToListingIamMemberConditionPtrOutput added in v6.41.0

func (o ListingIamMemberConditionPtrOutput) ToListingIamMemberConditionPtrOutput() ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionPtrOutput) ToListingIamMemberConditionPtrOutputWithContext added in v6.41.0

func (o ListingIamMemberConditionPtrOutput) ToListingIamMemberConditionPtrOutputWithContext(ctx context.Context) ListingIamMemberConditionPtrOutput

func (ListingIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type ListingIamMemberInput added in v6.41.0

type ListingIamMemberInput interface {
	pulumi.Input

	ToListingIamMemberOutput() ListingIamMemberOutput
	ToListingIamMemberOutputWithContext(ctx context.Context) ListingIamMemberOutput
}

type ListingIamMemberMap added in v6.41.0

type ListingIamMemberMap map[string]ListingIamMemberInput

func (ListingIamMemberMap) ElementType added in v6.41.0

func (ListingIamMemberMap) ElementType() reflect.Type

func (ListingIamMemberMap) ToListingIamMemberMapOutput added in v6.41.0

func (i ListingIamMemberMap) ToListingIamMemberMapOutput() ListingIamMemberMapOutput

func (ListingIamMemberMap) ToListingIamMemberMapOutputWithContext added in v6.41.0

func (i ListingIamMemberMap) ToListingIamMemberMapOutputWithContext(ctx context.Context) ListingIamMemberMapOutput

func (ListingIamMemberMap) ToOutput added in v6.65.1

type ListingIamMemberMapInput added in v6.41.0

type ListingIamMemberMapInput interface {
	pulumi.Input

	ToListingIamMemberMapOutput() ListingIamMemberMapOutput
	ToListingIamMemberMapOutputWithContext(context.Context) ListingIamMemberMapOutput
}

ListingIamMemberMapInput is an input type that accepts ListingIamMemberMap and ListingIamMemberMapOutput values. You can construct a concrete instance of `ListingIamMemberMapInput` via:

ListingIamMemberMap{ "key": ListingIamMemberArgs{...} }

type ListingIamMemberMapOutput added in v6.41.0

type ListingIamMemberMapOutput struct{ *pulumi.OutputState }

func (ListingIamMemberMapOutput) ElementType added in v6.41.0

func (ListingIamMemberMapOutput) ElementType() reflect.Type

func (ListingIamMemberMapOutput) MapIndex added in v6.41.0

func (ListingIamMemberMapOutput) ToListingIamMemberMapOutput added in v6.41.0

func (o ListingIamMemberMapOutput) ToListingIamMemberMapOutput() ListingIamMemberMapOutput

func (ListingIamMemberMapOutput) ToListingIamMemberMapOutputWithContext added in v6.41.0

func (o ListingIamMemberMapOutput) ToListingIamMemberMapOutputWithContext(ctx context.Context) ListingIamMemberMapOutput

func (ListingIamMemberMapOutput) ToOutput added in v6.65.1

type ListingIamMemberOutput added in v6.41.0

type ListingIamMemberOutput struct{ *pulumi.OutputState }

func (ListingIamMemberOutput) Condition added in v6.41.0

func (ListingIamMemberOutput) DataExchangeId added in v6.41.0

func (o ListingIamMemberOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamMemberOutput) ElementType added in v6.41.0

func (ListingIamMemberOutput) ElementType() reflect.Type

func (ListingIamMemberOutput) Etag added in v6.41.0

(Computed) The etag of the IAM policy.

func (ListingIamMemberOutput) ListingId added in v6.41.0

The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamMemberOutput) Location added in v6.41.0

The name of the location this data exchange listing. Used to find the parent resource to bind the IAM policy to

func (ListingIamMemberOutput) Member added in v6.41.0

func (ListingIamMemberOutput) Project added in v6.41.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (ListingIamMemberOutput) Role added in v6.41.0

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

func (ListingIamMemberOutput) ToListingIamMemberOutput added in v6.41.0

func (o ListingIamMemberOutput) ToListingIamMemberOutput() ListingIamMemberOutput

func (ListingIamMemberOutput) ToListingIamMemberOutputWithContext added in v6.41.0

func (o ListingIamMemberOutput) ToListingIamMemberOutputWithContext(ctx context.Context) ListingIamMemberOutput

func (ListingIamMemberOutput) ToOutput added in v6.65.1

type ListingIamMemberState added in v6.41.0

type ListingIamMemberState struct {
	Condition ListingIamMemberConditionPtrInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringPtrInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	Member   pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigqueryanalyticshub.ListingIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (ListingIamMemberState) ElementType added in v6.41.0

func (ListingIamMemberState) ElementType() reflect.Type

type ListingIamPolicy added in v6.41.0

type ListingIamPolicy struct {
	pulumi.CustomResourceState

	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringOutput `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringOutput `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringOutput `pulumi:"location"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
}

Three different resources help you manage your IAM policy for Bigquery Analytics Hub Listing. Each of these resources serves a different use case:

* `bigqueryanalyticshub.ListingIamPolicy`: Authoritative. Sets the IAM policy for the listing and replaces any existing policy already attached. * `bigqueryanalyticshub.ListingIamBinding`: 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 listing are preserved. * `bigqueryanalyticshub.ListingIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the listing are preserved.

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

* `bigqueryanalyticshub.ListingIamPolicy`: Retrieves the IAM policy for the listing

> **Note:** `bigqueryanalyticshub.ListingIamPolicy` **cannot** be used in conjunction with `bigqueryanalyticshub.ListingIamBinding` and `bigqueryanalyticshub.ListingIamMember` or they will fight over what your policy should be.

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

## google\_bigquery\_analytics\_hub\_listing\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi-gcp/sdk/v6/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 = bigqueryanalyticshub.NewListingIamPolicy(ctx, "policy", &bigqueryanalyticshub.ListingIamPolicyArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			PolicyData:     *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamBinding(ctx, "binding", &bigqueryanalyticshub.ListingIamBindingArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			Role:           pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigquery\_analytics\_hub\_listing\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.NewListingIamMember(ctx, "member", &bigqueryanalyticshub.ListingIamMemberArgs{
			Project:        pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Data_exchange_id),
			ListingId:      pulumi.Any(google_bigquery_analytics_hub_listing.Listing.Listing_id),
			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* projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} * {{project}}/{{location}}/{{data_exchange_id}}/{{listing_id}} * {{location}}/{{data_exchange_id}}/{{listing_id}} * {{listing_id}} Any variables not passed in the import command will be taken from the provider configuration. Bigquery Analytics Hub listing IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy editor "projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}} roles/viewer"

```

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

```sh

$ pulumi import gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy editor projects/{{project}}/locations/{{location}}/dataExchanges/{{data_exchange_id}}/listings/{{listing_id}}

```

-> **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 GetListingIamPolicy added in v6.41.0

func GetListingIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ListingIamPolicyState, opts ...pulumi.ResourceOption) (*ListingIamPolicy, error)

GetListingIamPolicy gets an existing ListingIamPolicy 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 NewListingIamPolicy added in v6.41.0

func NewListingIamPolicy(ctx *pulumi.Context,
	name string, args *ListingIamPolicyArgs, opts ...pulumi.ResourceOption) (*ListingIamPolicy, error)

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

func (*ListingIamPolicy) ElementType added in v6.41.0

func (*ListingIamPolicy) ElementType() reflect.Type

func (*ListingIamPolicy) ToListingIamPolicyOutput added in v6.41.0

func (i *ListingIamPolicy) ToListingIamPolicyOutput() ListingIamPolicyOutput

func (*ListingIamPolicy) ToListingIamPolicyOutputWithContext added in v6.41.0

func (i *ListingIamPolicy) ToListingIamPolicyOutputWithContext(ctx context.Context) ListingIamPolicyOutput

func (*ListingIamPolicy) ToOutput added in v6.65.1

type ListingIamPolicyArgs added in v6.41.0

type ListingIamPolicyArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a ListingIamPolicy resource.

func (ListingIamPolicyArgs) ElementType added in v6.41.0

func (ListingIamPolicyArgs) ElementType() reflect.Type

type ListingIamPolicyArray added in v6.41.0

type ListingIamPolicyArray []ListingIamPolicyInput

func (ListingIamPolicyArray) ElementType added in v6.41.0

func (ListingIamPolicyArray) ElementType() reflect.Type

func (ListingIamPolicyArray) ToListingIamPolicyArrayOutput added in v6.41.0

func (i ListingIamPolicyArray) ToListingIamPolicyArrayOutput() ListingIamPolicyArrayOutput

func (ListingIamPolicyArray) ToListingIamPolicyArrayOutputWithContext added in v6.41.0

func (i ListingIamPolicyArray) ToListingIamPolicyArrayOutputWithContext(ctx context.Context) ListingIamPolicyArrayOutput

func (ListingIamPolicyArray) ToOutput added in v6.65.1

type ListingIamPolicyArrayInput added in v6.41.0

type ListingIamPolicyArrayInput interface {
	pulumi.Input

	ToListingIamPolicyArrayOutput() ListingIamPolicyArrayOutput
	ToListingIamPolicyArrayOutputWithContext(context.Context) ListingIamPolicyArrayOutput
}

ListingIamPolicyArrayInput is an input type that accepts ListingIamPolicyArray and ListingIamPolicyArrayOutput values. You can construct a concrete instance of `ListingIamPolicyArrayInput` via:

ListingIamPolicyArray{ ListingIamPolicyArgs{...} }

type ListingIamPolicyArrayOutput added in v6.41.0

type ListingIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ListingIamPolicyArrayOutput) ElementType added in v6.41.0

func (ListingIamPolicyArrayOutput) Index added in v6.41.0

func (ListingIamPolicyArrayOutput) ToListingIamPolicyArrayOutput added in v6.41.0

func (o ListingIamPolicyArrayOutput) ToListingIamPolicyArrayOutput() ListingIamPolicyArrayOutput

func (ListingIamPolicyArrayOutput) ToListingIamPolicyArrayOutputWithContext added in v6.41.0

func (o ListingIamPolicyArrayOutput) ToListingIamPolicyArrayOutputWithContext(ctx context.Context) ListingIamPolicyArrayOutput

func (ListingIamPolicyArrayOutput) ToOutput added in v6.65.1

type ListingIamPolicyInput added in v6.41.0

type ListingIamPolicyInput interface {
	pulumi.Input

	ToListingIamPolicyOutput() ListingIamPolicyOutput
	ToListingIamPolicyOutputWithContext(ctx context.Context) ListingIamPolicyOutput
}

type ListingIamPolicyMap added in v6.41.0

type ListingIamPolicyMap map[string]ListingIamPolicyInput

func (ListingIamPolicyMap) ElementType added in v6.41.0

func (ListingIamPolicyMap) ElementType() reflect.Type

func (ListingIamPolicyMap) ToListingIamPolicyMapOutput added in v6.41.0

func (i ListingIamPolicyMap) ToListingIamPolicyMapOutput() ListingIamPolicyMapOutput

func (ListingIamPolicyMap) ToListingIamPolicyMapOutputWithContext added in v6.41.0

func (i ListingIamPolicyMap) ToListingIamPolicyMapOutputWithContext(ctx context.Context) ListingIamPolicyMapOutput

func (ListingIamPolicyMap) ToOutput added in v6.65.1

type ListingIamPolicyMapInput added in v6.41.0

type ListingIamPolicyMapInput interface {
	pulumi.Input

	ToListingIamPolicyMapOutput() ListingIamPolicyMapOutput
	ToListingIamPolicyMapOutputWithContext(context.Context) ListingIamPolicyMapOutput
}

ListingIamPolicyMapInput is an input type that accepts ListingIamPolicyMap and ListingIamPolicyMapOutput values. You can construct a concrete instance of `ListingIamPolicyMapInput` via:

ListingIamPolicyMap{ "key": ListingIamPolicyArgs{...} }

type ListingIamPolicyMapOutput added in v6.41.0

type ListingIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ListingIamPolicyMapOutput) ElementType added in v6.41.0

func (ListingIamPolicyMapOutput) ElementType() reflect.Type

func (ListingIamPolicyMapOutput) MapIndex added in v6.41.0

func (ListingIamPolicyMapOutput) ToListingIamPolicyMapOutput added in v6.41.0

func (o ListingIamPolicyMapOutput) ToListingIamPolicyMapOutput() ListingIamPolicyMapOutput

func (ListingIamPolicyMapOutput) ToListingIamPolicyMapOutputWithContext added in v6.41.0

func (o ListingIamPolicyMapOutput) ToListingIamPolicyMapOutputWithContext(ctx context.Context) ListingIamPolicyMapOutput

func (ListingIamPolicyMapOutput) ToOutput added in v6.65.1

type ListingIamPolicyOutput added in v6.41.0

type ListingIamPolicyOutput struct{ *pulumi.OutputState }

func (ListingIamPolicyOutput) DataExchangeId added in v6.41.0

func (o ListingIamPolicyOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamPolicyOutput) ElementType added in v6.41.0

func (ListingIamPolicyOutput) ElementType() reflect.Type

func (ListingIamPolicyOutput) Etag added in v6.41.0

(Computed) The etag of the IAM policy.

func (ListingIamPolicyOutput) ListingId added in v6.41.0

The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to

func (ListingIamPolicyOutput) Location added in v6.41.0

The name of the location this data exchange listing. Used to find the parent resource to bind the IAM policy to

func (ListingIamPolicyOutput) PolicyData added in v6.41.0

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

func (ListingIamPolicyOutput) Project added in v6.41.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (ListingIamPolicyOutput) ToListingIamPolicyOutput added in v6.41.0

func (o ListingIamPolicyOutput) ToListingIamPolicyOutput() ListingIamPolicyOutput

func (ListingIamPolicyOutput) ToListingIamPolicyOutputWithContext added in v6.41.0

func (o ListingIamPolicyOutput) ToListingIamPolicyOutputWithContext(ctx context.Context) ListingIamPolicyOutput

func (ListingIamPolicyOutput) ToOutput added in v6.65.1

type ListingIamPolicyState added in v6.41.0

type ListingIamPolicyState struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringPtrInput
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
}

func (ListingIamPolicyState) ElementType added in v6.41.0

func (ListingIamPolicyState) ElementType() reflect.Type

type ListingInput added in v6.41.0

type ListingInput interface {
	pulumi.Input

	ToListingOutput() ListingOutput
	ToListingOutputWithContext(ctx context.Context) ListingOutput
}

type ListingMap added in v6.41.0

type ListingMap map[string]ListingInput

func (ListingMap) ElementType added in v6.41.0

func (ListingMap) ElementType() reflect.Type

func (ListingMap) ToListingMapOutput added in v6.41.0

func (i ListingMap) ToListingMapOutput() ListingMapOutput

func (ListingMap) ToListingMapOutputWithContext added in v6.41.0

func (i ListingMap) ToListingMapOutputWithContext(ctx context.Context) ListingMapOutput

func (ListingMap) ToOutput added in v6.65.1

func (i ListingMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Listing]

type ListingMapInput added in v6.41.0

type ListingMapInput interface {
	pulumi.Input

	ToListingMapOutput() ListingMapOutput
	ToListingMapOutputWithContext(context.Context) ListingMapOutput
}

ListingMapInput is an input type that accepts ListingMap and ListingMapOutput values. You can construct a concrete instance of `ListingMapInput` via:

ListingMap{ "key": ListingArgs{...} }

type ListingMapOutput added in v6.41.0

type ListingMapOutput struct{ *pulumi.OutputState }

func (ListingMapOutput) ElementType added in v6.41.0

func (ListingMapOutput) ElementType() reflect.Type

func (ListingMapOutput) MapIndex added in v6.41.0

func (ListingMapOutput) ToListingMapOutput added in v6.41.0

func (o ListingMapOutput) ToListingMapOutput() ListingMapOutput

func (ListingMapOutput) ToListingMapOutputWithContext added in v6.41.0

func (o ListingMapOutput) ToListingMapOutputWithContext(ctx context.Context) ListingMapOutput

func (ListingMapOutput) ToOutput added in v6.65.1

type ListingOutput added in v6.41.0

type ListingOutput struct{ *pulumi.OutputState }

func (ListingOutput) BigqueryDataset added in v6.41.0

func (o ListingOutput) BigqueryDataset() ListingBigqueryDatasetOutput

Shared dataset i.e. BigQuery dataset source. Structure is documented below.

func (ListingOutput) Categories added in v6.41.0

func (o ListingOutput) Categories() pulumi.StringArrayOutput

Categories of the listing. Up to two categories are allowed.

func (ListingOutput) DataExchangeId added in v6.41.0

func (o ListingOutput) DataExchangeId() pulumi.StringOutput

The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.

func (ListingOutput) DataProvider added in v6.41.0

Details of the data provider who owns the source data. Structure is documented below.

func (ListingOutput) Description added in v6.41.0

func (o ListingOutput) Description() pulumi.StringPtrOutput

Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF).

func (ListingOutput) DisplayName added in v6.41.0

func (o ListingOutput) DisplayName() pulumi.StringOutput

Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces.

func (ListingOutput) Documentation added in v6.41.0

func (o ListingOutput) Documentation() pulumi.StringPtrOutput

Documentation describing the listing.

func (ListingOutput) ElementType added in v6.41.0

func (ListingOutput) ElementType() reflect.Type

func (ListingOutput) Icon added in v6.41.0

Base64 encoded image representing the listing.

func (ListingOutput) ListingId added in v6.41.0

func (o ListingOutput) ListingId() pulumi.StringOutput

The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.

func (ListingOutput) Location added in v6.41.0

func (o ListingOutput) Location() pulumi.StringOutput

The name of the location this data exchange listing.

func (ListingOutput) Name added in v6.41.0

Name of the data provider.

func (ListingOutput) PrimaryContact added in v6.41.0

func (o ListingOutput) PrimaryContact() pulumi.StringPtrOutput

Email or URL of the primary point of contact of the listing.

func (ListingOutput) Project added in v6.41.0

func (o ListingOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (ListingOutput) Publisher added in v6.41.0

Details of the publisher who owns the listing and who can share the source data. Structure is documented below.

func (ListingOutput) RequestAccess added in v6.41.0

func (o ListingOutput) RequestAccess() pulumi.StringPtrOutput

Email or URL of the request access of the listing. Subscribers can use this reference to request access.

func (ListingOutput) ToListingOutput added in v6.41.0

func (o ListingOutput) ToListingOutput() ListingOutput

func (ListingOutput) ToListingOutputWithContext added in v6.41.0

func (o ListingOutput) ToListingOutputWithContext(ctx context.Context) ListingOutput

func (ListingOutput) ToOutput added in v6.65.1

func (o ListingOutput) ToOutput(ctx context.Context) pulumix.Output[*Listing]

type ListingPublisher added in v6.41.0

type ListingPublisher struct {
	// Name of the listing publisher.
	Name string `pulumi:"name"`
	// Email or URL of the listing publisher.
	PrimaryContact *string `pulumi:"primaryContact"`
}

type ListingPublisherArgs added in v6.41.0

type ListingPublisherArgs struct {
	// Name of the listing publisher.
	Name pulumi.StringInput `pulumi:"name"`
	// Email or URL of the listing publisher.
	PrimaryContact pulumi.StringPtrInput `pulumi:"primaryContact"`
}

func (ListingPublisherArgs) ElementType added in v6.41.0

func (ListingPublisherArgs) ElementType() reflect.Type

func (ListingPublisherArgs) ToListingPublisherOutput added in v6.41.0

func (i ListingPublisherArgs) ToListingPublisherOutput() ListingPublisherOutput

func (ListingPublisherArgs) ToListingPublisherOutputWithContext added in v6.41.0

func (i ListingPublisherArgs) ToListingPublisherOutputWithContext(ctx context.Context) ListingPublisherOutput

func (ListingPublisherArgs) ToListingPublisherPtrOutput added in v6.41.0

func (i ListingPublisherArgs) ToListingPublisherPtrOutput() ListingPublisherPtrOutput

func (ListingPublisherArgs) ToListingPublisherPtrOutputWithContext added in v6.41.0

func (i ListingPublisherArgs) ToListingPublisherPtrOutputWithContext(ctx context.Context) ListingPublisherPtrOutput

func (ListingPublisherArgs) ToOutput added in v6.65.1

type ListingPublisherInput added in v6.41.0

type ListingPublisherInput interface {
	pulumi.Input

	ToListingPublisherOutput() ListingPublisherOutput
	ToListingPublisherOutputWithContext(context.Context) ListingPublisherOutput
}

ListingPublisherInput is an input type that accepts ListingPublisherArgs and ListingPublisherOutput values. You can construct a concrete instance of `ListingPublisherInput` via:

ListingPublisherArgs{...}

type ListingPublisherOutput added in v6.41.0

type ListingPublisherOutput struct{ *pulumi.OutputState }

func (ListingPublisherOutput) ElementType added in v6.41.0

func (ListingPublisherOutput) ElementType() reflect.Type

func (ListingPublisherOutput) Name added in v6.41.0

Name of the listing publisher.

func (ListingPublisherOutput) PrimaryContact added in v6.41.0

func (o ListingPublisherOutput) PrimaryContact() pulumi.StringPtrOutput

Email or URL of the listing publisher.

func (ListingPublisherOutput) ToListingPublisherOutput added in v6.41.0

func (o ListingPublisherOutput) ToListingPublisherOutput() ListingPublisherOutput

func (ListingPublisherOutput) ToListingPublisherOutputWithContext added in v6.41.0

func (o ListingPublisherOutput) ToListingPublisherOutputWithContext(ctx context.Context) ListingPublisherOutput

func (ListingPublisherOutput) ToListingPublisherPtrOutput added in v6.41.0

func (o ListingPublisherOutput) ToListingPublisherPtrOutput() ListingPublisherPtrOutput

func (ListingPublisherOutput) ToListingPublisherPtrOutputWithContext added in v6.41.0

func (o ListingPublisherOutput) ToListingPublisherPtrOutputWithContext(ctx context.Context) ListingPublisherPtrOutput

func (ListingPublisherOutput) ToOutput added in v6.65.1

type ListingPublisherPtrInput added in v6.41.0

type ListingPublisherPtrInput interface {
	pulumi.Input

	ToListingPublisherPtrOutput() ListingPublisherPtrOutput
	ToListingPublisherPtrOutputWithContext(context.Context) ListingPublisherPtrOutput
}

ListingPublisherPtrInput is an input type that accepts ListingPublisherArgs, ListingPublisherPtr and ListingPublisherPtrOutput values. You can construct a concrete instance of `ListingPublisherPtrInput` via:

        ListingPublisherArgs{...}

or:

        nil

func ListingPublisherPtr added in v6.41.0

func ListingPublisherPtr(v *ListingPublisherArgs) ListingPublisherPtrInput

type ListingPublisherPtrOutput added in v6.41.0

type ListingPublisherPtrOutput struct{ *pulumi.OutputState }

func (ListingPublisherPtrOutput) Elem added in v6.41.0

func (ListingPublisherPtrOutput) ElementType added in v6.41.0

func (ListingPublisherPtrOutput) ElementType() reflect.Type

func (ListingPublisherPtrOutput) Name added in v6.41.0

Name of the listing publisher.

func (ListingPublisherPtrOutput) PrimaryContact added in v6.41.0

Email or URL of the listing publisher.

func (ListingPublisherPtrOutput) ToListingPublisherPtrOutput added in v6.41.0

func (o ListingPublisherPtrOutput) ToListingPublisherPtrOutput() ListingPublisherPtrOutput

func (ListingPublisherPtrOutput) ToListingPublisherPtrOutputWithContext added in v6.41.0

func (o ListingPublisherPtrOutput) ToListingPublisherPtrOutputWithContext(ctx context.Context) ListingPublisherPtrOutput

func (ListingPublisherPtrOutput) ToOutput added in v6.65.1

type ListingState added in v6.41.0

type ListingState struct {
	// Shared dataset i.e. BigQuery dataset source.
	// Structure is documented below.
	BigqueryDataset ListingBigqueryDatasetPtrInput
	// Categories of the listing. Up to two categories are allowed.
	Categories pulumi.StringArrayInput
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	DataExchangeId pulumi.StringPtrInput
	// Details of the data provider who owns the source data.
	// Structure is documented below.
	DataProvider ListingDataProviderPtrInput
	// Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF).
	Description pulumi.StringPtrInput
	// Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces.
	DisplayName pulumi.StringPtrInput
	// Documentation describing the listing.
	Documentation pulumi.StringPtrInput
	// Base64 encoded image representing the listing.
	Icon pulumi.StringPtrInput
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
	ListingId pulumi.StringPtrInput
	// The name of the location this data exchange listing.
	Location pulumi.StringPtrInput
	// Name of the data provider.
	Name pulumi.StringPtrInput
	// Email or URL of the primary point of contact of the listing.
	PrimaryContact pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Details of the publisher who owns the listing and who can share the source data.
	// Structure is documented below.
	Publisher ListingPublisherPtrInput
	// Email or URL of the request access of the listing. Subscribers can use this reference to request access.
	RequestAccess pulumi.StringPtrInput
}

func (ListingState) ElementType added in v6.41.0

func (ListingState) ElementType() reflect.Type

type LookupDataExchangeIamPolicyArgs added in v6.59.0

type LookupDataExchangeIamPolicyArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId string `pulumi:"dataExchangeId"`
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location *string `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getDataExchangeIamPolicy.

type LookupDataExchangeIamPolicyOutputArgs added in v6.59.0

type LookupDataExchangeIamPolicyOutputArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput `pulumi:"dataExchangeId"`
	// The name of the location this data exchange.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getDataExchangeIamPolicy.

func (LookupDataExchangeIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupDataExchangeIamPolicyResult added in v6.59.0

type LookupDataExchangeIamPolicyResult struct {
	DataExchangeId string `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	Location string `pulumi:"location"`
	// (Required only by `bigqueryanalyticshub.DataExchangeIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
}

A collection of values returned by getDataExchangeIamPolicy.

func LookupDataExchangeIamPolicy added in v6.59.0

func LookupDataExchangeIamPolicy(ctx *pulumi.Context, args *LookupDataExchangeIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupDataExchangeIamPolicyResult, error)

Retrieves the current IAM policy data for dataexchange

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.LookupDataExchangeIamPolicy(ctx, &bigqueryanalyticshub.LookupDataExchangeIamPolicyArgs{
			Project:        pulumi.StringRef(google_bigquery_analytics_hub_data_exchange.Data_exchange.Project),
			Location:       pulumi.StringRef(google_bigquery_analytics_hub_data_exchange.Data_exchange.Location),
			DataExchangeId: google_bigquery_analytics_hub_data_exchange.Data_exchange.Data_exchange_id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupDataExchangeIamPolicyResultOutput added in v6.59.0

type LookupDataExchangeIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDataExchangeIamPolicy.

func (LookupDataExchangeIamPolicyResultOutput) DataExchangeId added in v6.59.0

func (LookupDataExchangeIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupDataExchangeIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupDataExchangeIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupDataExchangeIamPolicyResultOutput) Location added in v6.59.0

func (LookupDataExchangeIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `bigqueryanalyticshub.DataExchangeIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupDataExchangeIamPolicyResultOutput) Project added in v6.59.0

func (LookupDataExchangeIamPolicyResultOutput) ToLookupDataExchangeIamPolicyResultOutput added in v6.59.0

func (o LookupDataExchangeIamPolicyResultOutput) ToLookupDataExchangeIamPolicyResultOutput() LookupDataExchangeIamPolicyResultOutput

func (LookupDataExchangeIamPolicyResultOutput) ToLookupDataExchangeIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupDataExchangeIamPolicyResultOutput) ToLookupDataExchangeIamPolicyResultOutputWithContext(ctx context.Context) LookupDataExchangeIamPolicyResultOutput

func (LookupDataExchangeIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupListingIamPolicyArgs added in v6.59.0

type LookupListingIamPolicyArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId string `pulumi:"dataExchangeId"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId string `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location *string `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getListingIamPolicy.

type LookupListingIamPolicyOutputArgs added in v6.59.0

type LookupListingIamPolicyOutputArgs struct {
	// The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	DataExchangeId pulumi.StringInput `pulumi:"dataExchangeId"`
	// The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Used to find the parent resource to bind the IAM policy to
	ListingId pulumi.StringInput `pulumi:"listingId"`
	// The name of the location this data exchange listing.
	// Used to find the parent resource to bind the IAM policy to
	Location pulumi.StringPtrInput `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getListingIamPolicy.

func (LookupListingIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupListingIamPolicyResult added in v6.59.0

type LookupListingIamPolicyResult struct {
	DataExchangeId string `pulumi:"dataExchangeId"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id        string `pulumi:"id"`
	ListingId string `pulumi:"listingId"`
	Location  string `pulumi:"location"`
	// (Required only by `bigqueryanalyticshub.ListingIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
}

A collection of values returned by getListingIamPolicy.

func LookupListingIamPolicy added in v6.59.0

func LookupListingIamPolicy(ctx *pulumi.Context, args *LookupListingIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupListingIamPolicyResult, error)

Retrieves the current IAM policy data for listing

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigqueryanalyticshub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigqueryanalyticshub.LookupListingIamPolicy(ctx, &bigqueryanalyticshub.LookupListingIamPolicyArgs{
			Project:        pulumi.StringRef(google_bigquery_analytics_hub_listing.Listing.Project),
			Location:       pulumi.StringRef(google_bigquery_analytics_hub_listing.Listing.Location),
			DataExchangeId: google_bigquery_analytics_hub_listing.Listing.Data_exchange_id,
			ListingId:      google_bigquery_analytics_hub_listing.Listing.Listing_id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupListingIamPolicyResultOutput added in v6.59.0

type LookupListingIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getListingIamPolicy.

func LookupListingIamPolicyOutput added in v6.59.0

func (LookupListingIamPolicyResultOutput) DataExchangeId added in v6.59.0

func (LookupListingIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupListingIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupListingIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupListingIamPolicyResultOutput) ListingId added in v6.59.0

func (LookupListingIamPolicyResultOutput) Location added in v6.59.0

func (LookupListingIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `bigqueryanalyticshub.ListingIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupListingIamPolicyResultOutput) Project added in v6.59.0

func (LookupListingIamPolicyResultOutput) ToLookupListingIamPolicyResultOutput added in v6.59.0

func (o LookupListingIamPolicyResultOutput) ToLookupListingIamPolicyResultOutput() LookupListingIamPolicyResultOutput

func (LookupListingIamPolicyResultOutput) ToLookupListingIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupListingIamPolicyResultOutput) ToLookupListingIamPolicyResultOutputWithContext(ctx context.Context) LookupListingIamPolicyResultOutput

func (LookupListingIamPolicyResultOutput) ToOutput added in v6.65.1

Jump to

Keyboard shortcuts

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