apigateway

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: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Api

type Api struct {
	pulumi.CustomResourceState

	// Identifier to assign to the API. Must be unique within scope of the parent resource(project)
	//
	// ***
	ApiId pulumi.StringOutput `pulumi:"apiId"`
	// Creation timestamp in RFC3339 text format.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// A user-visible name for the API.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed).
	// If not specified, a new Service will automatically be created in the same project as this API.
	ManagedService pulumi.StringOutput `pulumi:"managedService"`
	// The resource name of the API. Format `projects/{{project}}/locations/global/apis/{{apiId}}`
	Name pulumi.StringOutput `pulumi:"name"`
	// 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 consumable API that can be used by multiple Gateways.

To get more information about Api, see:

* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis) * How-to Guides

## Example Usage ### Apigateway Api Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApi(ctx, "api", &apigateway.ApiArgs{
			ApiId: pulumi.String("my-api"),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Api can be imported using any of these accepted formats

```sh

$ pulumi import gcp:apigateway/api:Api default projects/{{project}}/locations/global/apis/{{api_id}}

```

```sh

$ pulumi import gcp:apigateway/api:Api default {{project}}/{{api_id}}

```

```sh

$ pulumi import gcp:apigateway/api:Api default {{api_id}}

```

func GetApi

func GetApi(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiState, opts ...pulumi.ResourceOption) (*Api, error)

GetApi gets an existing Api 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 NewApi

func NewApi(ctx *pulumi.Context,
	name string, args *ApiArgs, opts ...pulumi.ResourceOption) (*Api, error)

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

func (*Api) ElementType

func (*Api) ElementType() reflect.Type

func (*Api) ToApiOutput

func (i *Api) ToApiOutput() ApiOutput

func (*Api) ToApiOutputWithContext

func (i *Api) ToApiOutputWithContext(ctx context.Context) ApiOutput

func (*Api) ToOutput added in v6.65.1

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

type ApiArgs

type ApiArgs struct {
	// Identifier to assign to the API. Must be unique within scope of the parent resource(project)
	//
	// ***
	ApiId pulumi.StringInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed).
	// If not specified, a new Service will automatically be created in the same project as this API.
	ManagedService 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 Api resource.

func (ApiArgs) ElementType

func (ApiArgs) ElementType() reflect.Type

type ApiArray

type ApiArray []ApiInput

func (ApiArray) ElementType

func (ApiArray) ElementType() reflect.Type

func (ApiArray) ToApiArrayOutput

func (i ApiArray) ToApiArrayOutput() ApiArrayOutput

func (ApiArray) ToApiArrayOutputWithContext

func (i ApiArray) ToApiArrayOutputWithContext(ctx context.Context) ApiArrayOutput

func (ApiArray) ToOutput added in v6.65.1

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

type ApiArrayInput

type ApiArrayInput interface {
	pulumi.Input

	ToApiArrayOutput() ApiArrayOutput
	ToApiArrayOutputWithContext(context.Context) ApiArrayOutput
}

ApiArrayInput is an input type that accepts ApiArray and ApiArrayOutput values. You can construct a concrete instance of `ApiArrayInput` via:

ApiArray{ ApiArgs{...} }

type ApiArrayOutput

type ApiArrayOutput struct{ *pulumi.OutputState }

func (ApiArrayOutput) ElementType

func (ApiArrayOutput) ElementType() reflect.Type

func (ApiArrayOutput) Index

func (ApiArrayOutput) ToApiArrayOutput

func (o ApiArrayOutput) ToApiArrayOutput() ApiArrayOutput

func (ApiArrayOutput) ToApiArrayOutputWithContext

func (o ApiArrayOutput) ToApiArrayOutputWithContext(ctx context.Context) ApiArrayOutput

func (ApiArrayOutput) ToOutput added in v6.65.1

func (o ApiArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Api]

type ApiConfig

type ApiConfig struct {
	pulumi.CustomResourceState

	// The API to attach the config to.
	//
	// ***
	Api pulumi.StringOutput `pulumi:"api"`
	// Identifier to assign to the API Config. Must be unique within scope of the parent resource(api).
	ApiConfigId pulumi.StringOutput `pulumi:"apiConfigId"`
	// Creates a unique name beginning with the
	// specified prefix. If this and apiConfigId are unspecified, a random value is chosen for the name.
	ApiConfigIdPrefix pulumi.StringOutput `pulumi:"apiConfigIdPrefix"`
	// A user-visible name for the API.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Immutable. Gateway specific configuration.
	// If not specified, backend authentication will be set to use OIDC authentication using the default compute service account
	// Structure is documented below.
	GatewayConfig ApiConfigGatewayConfigPtrOutput `pulumi:"gatewayConfig"`
	// gRPC service definition files. If specified, openapiDocuments must not be included.
	// Structure is documented below.
	GrpcServices ApiConfigGrpcServiceArrayOutput `pulumi:"grpcServices"`
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents.
	// If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using "last one wins" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields.
	// Structure is documented below.
	ManagedServiceConfigs ApiConfigManagedServiceConfigArrayOutput `pulumi:"managedServiceConfigs"`
	// The resource name of the API Config.
	Name pulumi.StringOutput `pulumi:"name"`
	// OpenAPI specification documents. If specified, grpcServices and managedServiceConfigs must not be included.
	// Structure is documented below.
	OpenapiDocuments ApiConfigOpenapiDocumentArrayOutput `pulumi:"openapiDocuments"`
	// 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"`
	// The ID of the associated Service Config (https://cloud.google.com/service-infrastructure/docs/glossary#config).
	ServiceConfigId pulumi.StringOutput `pulumi:"serviceConfigId"`
}

An API Configuration is an association of an API Controller Config and a Gateway Config

To get more information about ApiConfig, see:

* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis.configs) * How-to Guides

## Example Usage ### Apigateway Api Config Basic

```go package main

import (

"encoding/base64"
"os"

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

)

func filebase64OrPanic(path string) pulumi.StringPtrInput {
	if fileData, err := os.ReadFile(path); err == nil {
		return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))
	} else {
		panic(err.Error())
	}
}

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		apiCfgApi, err := apigateway.NewApi(ctx, "apiCfgApi", &apigateway.ApiArgs{
			ApiId: pulumi.String("my-api"),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiConfig(ctx, "apiCfgApiConfig", &apigateway.ApiConfigArgs{
			Api:         apiCfgApi.ApiId,
			ApiConfigId: pulumi.String("my-config"),
			OpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{
				&apigateway.ApiConfigOpenapiDocumentArgs{
					Document: &apigateway.ApiConfigOpenapiDocumentDocumentArgs{
						Path:     pulumi.String("spec.yaml"),
						Contents: filebase64OrPanic("test-fixtures/openapi.yaml"),
					},
				},
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ApiConfig can be imported using any of these accepted formats

```sh

$ pulumi import gcp:apigateway/apiConfig:ApiConfig default projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}

```

```sh

$ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{project}}/{{api}}/{{api_config_id}}

```

```sh

$ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{api}}/{{api_config_id}}

```

func GetApiConfig

func GetApiConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiConfigState, opts ...pulumi.ResourceOption) (*ApiConfig, error)

GetApiConfig gets an existing ApiConfig 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 NewApiConfig

func NewApiConfig(ctx *pulumi.Context,
	name string, args *ApiConfigArgs, opts ...pulumi.ResourceOption) (*ApiConfig, error)

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

func (*ApiConfig) ElementType

func (*ApiConfig) ElementType() reflect.Type

func (*ApiConfig) ToApiConfigOutput

func (i *ApiConfig) ToApiConfigOutput() ApiConfigOutput

func (*ApiConfig) ToApiConfigOutputWithContext

func (i *ApiConfig) ToApiConfigOutputWithContext(ctx context.Context) ApiConfigOutput

func (*ApiConfig) ToOutput added in v6.65.1

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

type ApiConfigArgs

type ApiConfigArgs struct {
	// The API to attach the config to.
	//
	// ***
	Api pulumi.StringInput
	// Identifier to assign to the API Config. Must be unique within scope of the parent resource(api).
	ApiConfigId pulumi.StringPtrInput
	// Creates a unique name beginning with the
	// specified prefix. If this and apiConfigId are unspecified, a random value is chosen for the name.
	ApiConfigIdPrefix pulumi.StringPtrInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Immutable. Gateway specific configuration.
	// If not specified, backend authentication will be set to use OIDC authentication using the default compute service account
	// Structure is documented below.
	GatewayConfig ApiConfigGatewayConfigPtrInput
	// gRPC service definition files. If specified, openapiDocuments must not be included.
	// Structure is documented below.
	GrpcServices ApiConfigGrpcServiceArrayInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents.
	// If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using "last one wins" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields.
	// Structure is documented below.
	ManagedServiceConfigs ApiConfigManagedServiceConfigArrayInput
	// OpenAPI specification documents. If specified, grpcServices and managedServiceConfigs must not be included.
	// Structure is documented below.
	OpenapiDocuments ApiConfigOpenapiDocumentArrayInput
	// 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 ApiConfig resource.

func (ApiConfigArgs) ElementType

func (ApiConfigArgs) ElementType() reflect.Type

type ApiConfigArray

type ApiConfigArray []ApiConfigInput

func (ApiConfigArray) ElementType

func (ApiConfigArray) ElementType() reflect.Type

func (ApiConfigArray) ToApiConfigArrayOutput

func (i ApiConfigArray) ToApiConfigArrayOutput() ApiConfigArrayOutput

func (ApiConfigArray) ToApiConfigArrayOutputWithContext

func (i ApiConfigArray) ToApiConfigArrayOutputWithContext(ctx context.Context) ApiConfigArrayOutput

func (ApiConfigArray) ToOutput added in v6.65.1

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

type ApiConfigArrayInput

type ApiConfigArrayInput interface {
	pulumi.Input

	ToApiConfigArrayOutput() ApiConfigArrayOutput
	ToApiConfigArrayOutputWithContext(context.Context) ApiConfigArrayOutput
}

ApiConfigArrayInput is an input type that accepts ApiConfigArray and ApiConfigArrayOutput values. You can construct a concrete instance of `ApiConfigArrayInput` via:

ApiConfigArray{ ApiConfigArgs{...} }

type ApiConfigArrayOutput

type ApiConfigArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigArrayOutput) ElementType

func (ApiConfigArrayOutput) ElementType() reflect.Type

func (ApiConfigArrayOutput) Index

func (ApiConfigArrayOutput) ToApiConfigArrayOutput

func (o ApiConfigArrayOutput) ToApiConfigArrayOutput() ApiConfigArrayOutput

func (ApiConfigArrayOutput) ToApiConfigArrayOutputWithContext

func (o ApiConfigArrayOutput) ToApiConfigArrayOutputWithContext(ctx context.Context) ApiConfigArrayOutput

func (ApiConfigArrayOutput) ToOutput added in v6.65.1

type ApiConfigGatewayConfig

type ApiConfigGatewayConfig struct {
	// Backend settings that are applied to all backends of the Gateway.
	// Structure is documented below.
	BackendConfig ApiConfigGatewayConfigBackendConfig `pulumi:"backendConfig"`
}

type ApiConfigGatewayConfigArgs

type ApiConfigGatewayConfigArgs struct {
	// Backend settings that are applied to all backends of the Gateway.
	// Structure is documented below.
	BackendConfig ApiConfigGatewayConfigBackendConfigInput `pulumi:"backendConfig"`
}

func (ApiConfigGatewayConfigArgs) ElementType

func (ApiConfigGatewayConfigArgs) ElementType() reflect.Type

func (ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigOutput

func (i ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigOutput() ApiConfigGatewayConfigOutput

func (ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigOutputWithContext

func (i ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigOutputWithContext(ctx context.Context) ApiConfigGatewayConfigOutput

func (ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigPtrOutput

func (i ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigPtrOutput() ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigPtrOutputWithContext

func (i ApiConfigGatewayConfigArgs) ToApiConfigGatewayConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigArgs) ToOutput added in v6.65.1

type ApiConfigGatewayConfigBackendConfig

type ApiConfigGatewayConfigBackendConfig struct {
	// Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured
	// (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).
	GoogleServiceAccount string `pulumi:"googleServiceAccount"`
}

type ApiConfigGatewayConfigBackendConfigArgs

type ApiConfigGatewayConfigBackendConfigArgs struct {
	// Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured
	// (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).
	GoogleServiceAccount pulumi.StringInput `pulumi:"googleServiceAccount"`
}

func (ApiConfigGatewayConfigBackendConfigArgs) ElementType

func (ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigOutput

func (i ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigOutput() ApiConfigGatewayConfigBackendConfigOutput

func (ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigOutputWithContext

func (i ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigOutputWithContext(ctx context.Context) ApiConfigGatewayConfigBackendConfigOutput

func (ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigPtrOutput

func (i ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigPtrOutput() ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext

func (i ApiConfigGatewayConfigBackendConfigArgs) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigArgs) ToOutput added in v6.65.1

type ApiConfigGatewayConfigBackendConfigInput

type ApiConfigGatewayConfigBackendConfigInput interface {
	pulumi.Input

	ToApiConfigGatewayConfigBackendConfigOutput() ApiConfigGatewayConfigBackendConfigOutput
	ToApiConfigGatewayConfigBackendConfigOutputWithContext(context.Context) ApiConfigGatewayConfigBackendConfigOutput
}

ApiConfigGatewayConfigBackendConfigInput is an input type that accepts ApiConfigGatewayConfigBackendConfigArgs and ApiConfigGatewayConfigBackendConfigOutput values. You can construct a concrete instance of `ApiConfigGatewayConfigBackendConfigInput` via:

ApiConfigGatewayConfigBackendConfigArgs{...}

type ApiConfigGatewayConfigBackendConfigOutput

type ApiConfigGatewayConfigBackendConfigOutput struct{ *pulumi.OutputState }

func (ApiConfigGatewayConfigBackendConfigOutput) ElementType

func (ApiConfigGatewayConfigBackendConfigOutput) GoogleServiceAccount

Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).

func (ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigOutput

func (o ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigOutput() ApiConfigGatewayConfigBackendConfigOutput

func (ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigOutputWithContext

func (o ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigOutputWithContext(ctx context.Context) ApiConfigGatewayConfigBackendConfigOutput

func (ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigPtrOutput

func (o ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigPtrOutput() ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext

func (o ApiConfigGatewayConfigBackendConfigOutput) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigOutput) ToOutput added in v6.65.1

type ApiConfigGatewayConfigBackendConfigPtrInput

type ApiConfigGatewayConfigBackendConfigPtrInput interface {
	pulumi.Input

	ToApiConfigGatewayConfigBackendConfigPtrOutput() ApiConfigGatewayConfigBackendConfigPtrOutput
	ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext(context.Context) ApiConfigGatewayConfigBackendConfigPtrOutput
}

ApiConfigGatewayConfigBackendConfigPtrInput is an input type that accepts ApiConfigGatewayConfigBackendConfigArgs, ApiConfigGatewayConfigBackendConfigPtr and ApiConfigGatewayConfigBackendConfigPtrOutput values. You can construct a concrete instance of `ApiConfigGatewayConfigBackendConfigPtrInput` via:

        ApiConfigGatewayConfigBackendConfigArgs{...}

or:

        nil

type ApiConfigGatewayConfigBackendConfigPtrOutput

type ApiConfigGatewayConfigBackendConfigPtrOutput struct{ *pulumi.OutputState }

func (ApiConfigGatewayConfigBackendConfigPtrOutput) Elem

func (ApiConfigGatewayConfigBackendConfigPtrOutput) ElementType

func (ApiConfigGatewayConfigBackendConfigPtrOutput) GoogleServiceAccount

Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).

func (ApiConfigGatewayConfigBackendConfigPtrOutput) ToApiConfigGatewayConfigBackendConfigPtrOutput

func (o ApiConfigGatewayConfigBackendConfigPtrOutput) ToApiConfigGatewayConfigBackendConfigPtrOutput() ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigPtrOutput) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext

func (o ApiConfigGatewayConfigBackendConfigPtrOutput) ToApiConfigGatewayConfigBackendConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigBackendConfigPtrOutput

func (ApiConfigGatewayConfigBackendConfigPtrOutput) ToOutput added in v6.65.1

type ApiConfigGatewayConfigInput

type ApiConfigGatewayConfigInput interface {
	pulumi.Input

	ToApiConfigGatewayConfigOutput() ApiConfigGatewayConfigOutput
	ToApiConfigGatewayConfigOutputWithContext(context.Context) ApiConfigGatewayConfigOutput
}

ApiConfigGatewayConfigInput is an input type that accepts ApiConfigGatewayConfigArgs and ApiConfigGatewayConfigOutput values. You can construct a concrete instance of `ApiConfigGatewayConfigInput` via:

ApiConfigGatewayConfigArgs{...}

type ApiConfigGatewayConfigOutput

type ApiConfigGatewayConfigOutput struct{ *pulumi.OutputState }

func (ApiConfigGatewayConfigOutput) BackendConfig

Backend settings that are applied to all backends of the Gateway. Structure is documented below.

func (ApiConfigGatewayConfigOutput) ElementType

func (ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigOutput

func (o ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigOutput() ApiConfigGatewayConfigOutput

func (ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigOutputWithContext

func (o ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigOutputWithContext(ctx context.Context) ApiConfigGatewayConfigOutput

func (ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigPtrOutput

func (o ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigPtrOutput() ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigPtrOutputWithContext

func (o ApiConfigGatewayConfigOutput) ToApiConfigGatewayConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigOutput) ToOutput added in v6.65.1

type ApiConfigGatewayConfigPtrInput

type ApiConfigGatewayConfigPtrInput interface {
	pulumi.Input

	ToApiConfigGatewayConfigPtrOutput() ApiConfigGatewayConfigPtrOutput
	ToApiConfigGatewayConfigPtrOutputWithContext(context.Context) ApiConfigGatewayConfigPtrOutput
}

ApiConfigGatewayConfigPtrInput is an input type that accepts ApiConfigGatewayConfigArgs, ApiConfigGatewayConfigPtr and ApiConfigGatewayConfigPtrOutput values. You can construct a concrete instance of `ApiConfigGatewayConfigPtrInput` via:

        ApiConfigGatewayConfigArgs{...}

or:

        nil

type ApiConfigGatewayConfigPtrOutput

type ApiConfigGatewayConfigPtrOutput struct{ *pulumi.OutputState }

func (ApiConfigGatewayConfigPtrOutput) BackendConfig

Backend settings that are applied to all backends of the Gateway. Structure is documented below.

func (ApiConfigGatewayConfigPtrOutput) Elem

func (ApiConfigGatewayConfigPtrOutput) ElementType

func (ApiConfigGatewayConfigPtrOutput) ToApiConfigGatewayConfigPtrOutput

func (o ApiConfigGatewayConfigPtrOutput) ToApiConfigGatewayConfigPtrOutput() ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigPtrOutput) ToApiConfigGatewayConfigPtrOutputWithContext

func (o ApiConfigGatewayConfigPtrOutput) ToApiConfigGatewayConfigPtrOutputWithContext(ctx context.Context) ApiConfigGatewayConfigPtrOutput

func (ApiConfigGatewayConfigPtrOutput) ToOutput added in v6.65.1

type ApiConfigGrpcService added in v6.29.0

type ApiConfigGrpcService struct {
	// Input only. File descriptor set, generated by protoc.
	// To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb.
	// $ protoc --include_imports --include_source_info test.proto -o out.pb
	// Structure is documented below.
	FileDescriptorSet ApiConfigGrpcServiceFileDescriptorSet `pulumi:"fileDescriptorSet"`
	// Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate fileDescriptorSet.
	// Structure is documented below.
	Sources []ApiConfigGrpcServiceSource `pulumi:"sources"`
}

type ApiConfigGrpcServiceArgs added in v6.29.0

type ApiConfigGrpcServiceArgs struct {
	// Input only. File descriptor set, generated by protoc.
	// To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb.
	// $ protoc --include_imports --include_source_info test.proto -o out.pb
	// Structure is documented below.
	FileDescriptorSet ApiConfigGrpcServiceFileDescriptorSetInput `pulumi:"fileDescriptorSet"`
	// Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate fileDescriptorSet.
	// Structure is documented below.
	Sources ApiConfigGrpcServiceSourceArrayInput `pulumi:"sources"`
}

func (ApiConfigGrpcServiceArgs) ElementType added in v6.29.0

func (ApiConfigGrpcServiceArgs) ElementType() reflect.Type

func (ApiConfigGrpcServiceArgs) ToApiConfigGrpcServiceOutput added in v6.29.0

func (i ApiConfigGrpcServiceArgs) ToApiConfigGrpcServiceOutput() ApiConfigGrpcServiceOutput

func (ApiConfigGrpcServiceArgs) ToApiConfigGrpcServiceOutputWithContext added in v6.29.0

func (i ApiConfigGrpcServiceArgs) ToApiConfigGrpcServiceOutputWithContext(ctx context.Context) ApiConfigGrpcServiceOutput

func (ApiConfigGrpcServiceArgs) ToOutput added in v6.65.1

type ApiConfigGrpcServiceArray added in v6.29.0

type ApiConfigGrpcServiceArray []ApiConfigGrpcServiceInput

func (ApiConfigGrpcServiceArray) ElementType added in v6.29.0

func (ApiConfigGrpcServiceArray) ElementType() reflect.Type

func (ApiConfigGrpcServiceArray) ToApiConfigGrpcServiceArrayOutput added in v6.29.0

func (i ApiConfigGrpcServiceArray) ToApiConfigGrpcServiceArrayOutput() ApiConfigGrpcServiceArrayOutput

func (ApiConfigGrpcServiceArray) ToApiConfigGrpcServiceArrayOutputWithContext added in v6.29.0

func (i ApiConfigGrpcServiceArray) ToApiConfigGrpcServiceArrayOutputWithContext(ctx context.Context) ApiConfigGrpcServiceArrayOutput

func (ApiConfigGrpcServiceArray) ToOutput added in v6.65.1

type ApiConfigGrpcServiceArrayInput added in v6.29.0

type ApiConfigGrpcServiceArrayInput interface {
	pulumi.Input

	ToApiConfigGrpcServiceArrayOutput() ApiConfigGrpcServiceArrayOutput
	ToApiConfigGrpcServiceArrayOutputWithContext(context.Context) ApiConfigGrpcServiceArrayOutput
}

ApiConfigGrpcServiceArrayInput is an input type that accepts ApiConfigGrpcServiceArray and ApiConfigGrpcServiceArrayOutput values. You can construct a concrete instance of `ApiConfigGrpcServiceArrayInput` via:

ApiConfigGrpcServiceArray{ ApiConfigGrpcServiceArgs{...} }

type ApiConfigGrpcServiceArrayOutput added in v6.29.0

type ApiConfigGrpcServiceArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigGrpcServiceArrayOutput) ElementType added in v6.29.0

func (ApiConfigGrpcServiceArrayOutput) Index added in v6.29.0

func (ApiConfigGrpcServiceArrayOutput) ToApiConfigGrpcServiceArrayOutput added in v6.29.0

func (o ApiConfigGrpcServiceArrayOutput) ToApiConfigGrpcServiceArrayOutput() ApiConfigGrpcServiceArrayOutput

func (ApiConfigGrpcServiceArrayOutput) ToApiConfigGrpcServiceArrayOutputWithContext added in v6.29.0

func (o ApiConfigGrpcServiceArrayOutput) ToApiConfigGrpcServiceArrayOutputWithContext(ctx context.Context) ApiConfigGrpcServiceArrayOutput

func (ApiConfigGrpcServiceArrayOutput) ToOutput added in v6.65.1

type ApiConfigGrpcServiceFileDescriptorSet added in v6.29.0

type ApiConfigGrpcServiceFileDescriptorSet struct {
	// Base64 encoded content of the file.
	Contents string `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path string `pulumi:"path"`
}

type ApiConfigGrpcServiceFileDescriptorSetArgs added in v6.29.0

type ApiConfigGrpcServiceFileDescriptorSetArgs struct {
	// Base64 encoded content of the file.
	Contents pulumi.StringInput `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path pulumi.StringInput `pulumi:"path"`
}

func (ApiConfigGrpcServiceFileDescriptorSetArgs) ElementType added in v6.29.0

func (ApiConfigGrpcServiceFileDescriptorSetArgs) ToApiConfigGrpcServiceFileDescriptorSetOutput added in v6.29.0

func (i ApiConfigGrpcServiceFileDescriptorSetArgs) ToApiConfigGrpcServiceFileDescriptorSetOutput() ApiConfigGrpcServiceFileDescriptorSetOutput

func (ApiConfigGrpcServiceFileDescriptorSetArgs) ToApiConfigGrpcServiceFileDescriptorSetOutputWithContext added in v6.29.0

func (i ApiConfigGrpcServiceFileDescriptorSetArgs) ToApiConfigGrpcServiceFileDescriptorSetOutputWithContext(ctx context.Context) ApiConfigGrpcServiceFileDescriptorSetOutput

func (ApiConfigGrpcServiceFileDescriptorSetArgs) ToOutput added in v6.65.1

type ApiConfigGrpcServiceFileDescriptorSetInput added in v6.29.0

type ApiConfigGrpcServiceFileDescriptorSetInput interface {
	pulumi.Input

	ToApiConfigGrpcServiceFileDescriptorSetOutput() ApiConfigGrpcServiceFileDescriptorSetOutput
	ToApiConfigGrpcServiceFileDescriptorSetOutputWithContext(context.Context) ApiConfigGrpcServiceFileDescriptorSetOutput
}

ApiConfigGrpcServiceFileDescriptorSetInput is an input type that accepts ApiConfigGrpcServiceFileDescriptorSetArgs and ApiConfigGrpcServiceFileDescriptorSetOutput values. You can construct a concrete instance of `ApiConfigGrpcServiceFileDescriptorSetInput` via:

ApiConfigGrpcServiceFileDescriptorSetArgs{...}

type ApiConfigGrpcServiceFileDescriptorSetOutput added in v6.29.0

type ApiConfigGrpcServiceFileDescriptorSetOutput struct{ *pulumi.OutputState }

func (ApiConfigGrpcServiceFileDescriptorSetOutput) Contents added in v6.29.0

Base64 encoded content of the file.

func (ApiConfigGrpcServiceFileDescriptorSetOutput) ElementType added in v6.29.0

func (ApiConfigGrpcServiceFileDescriptorSetOutput) Path added in v6.29.0

The file path (full or relative path). This is typically the path of the file when it is uploaded.

func (ApiConfigGrpcServiceFileDescriptorSetOutput) ToApiConfigGrpcServiceFileDescriptorSetOutput added in v6.29.0

func (o ApiConfigGrpcServiceFileDescriptorSetOutput) ToApiConfigGrpcServiceFileDescriptorSetOutput() ApiConfigGrpcServiceFileDescriptorSetOutput

func (ApiConfigGrpcServiceFileDescriptorSetOutput) ToApiConfigGrpcServiceFileDescriptorSetOutputWithContext added in v6.29.0

func (o ApiConfigGrpcServiceFileDescriptorSetOutput) ToApiConfigGrpcServiceFileDescriptorSetOutputWithContext(ctx context.Context) ApiConfigGrpcServiceFileDescriptorSetOutput

func (ApiConfigGrpcServiceFileDescriptorSetOutput) ToOutput added in v6.65.1

type ApiConfigGrpcServiceInput added in v6.29.0

type ApiConfigGrpcServiceInput interface {
	pulumi.Input

	ToApiConfigGrpcServiceOutput() ApiConfigGrpcServiceOutput
	ToApiConfigGrpcServiceOutputWithContext(context.Context) ApiConfigGrpcServiceOutput
}

ApiConfigGrpcServiceInput is an input type that accepts ApiConfigGrpcServiceArgs and ApiConfigGrpcServiceOutput values. You can construct a concrete instance of `ApiConfigGrpcServiceInput` via:

ApiConfigGrpcServiceArgs{...}

type ApiConfigGrpcServiceOutput added in v6.29.0

type ApiConfigGrpcServiceOutput struct{ *pulumi.OutputState }

func (ApiConfigGrpcServiceOutput) ElementType added in v6.29.0

func (ApiConfigGrpcServiceOutput) ElementType() reflect.Type

func (ApiConfigGrpcServiceOutput) FileDescriptorSet added in v6.29.0

Input only. File descriptor set, generated by protoc. To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb. $ protoc --include_imports --include_source_info test.proto -o out.pb Structure is documented below.

func (ApiConfigGrpcServiceOutput) Sources added in v6.29.0

Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate fileDescriptorSet. Structure is documented below.

func (ApiConfigGrpcServiceOutput) ToApiConfigGrpcServiceOutput added in v6.29.0

func (o ApiConfigGrpcServiceOutput) ToApiConfigGrpcServiceOutput() ApiConfigGrpcServiceOutput

func (ApiConfigGrpcServiceOutput) ToApiConfigGrpcServiceOutputWithContext added in v6.29.0

func (o ApiConfigGrpcServiceOutput) ToApiConfigGrpcServiceOutputWithContext(ctx context.Context) ApiConfigGrpcServiceOutput

func (ApiConfigGrpcServiceOutput) ToOutput added in v6.65.1

type ApiConfigGrpcServiceSource added in v6.29.0

type ApiConfigGrpcServiceSource struct {
	// Base64 encoded content of the file.
	Contents string `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path string `pulumi:"path"`
}

type ApiConfigGrpcServiceSourceArgs added in v6.29.0

type ApiConfigGrpcServiceSourceArgs struct {
	// Base64 encoded content of the file.
	Contents pulumi.StringInput `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path pulumi.StringInput `pulumi:"path"`
}

func (ApiConfigGrpcServiceSourceArgs) ElementType added in v6.29.0

func (ApiConfigGrpcServiceSourceArgs) ToApiConfigGrpcServiceSourceOutput added in v6.29.0

func (i ApiConfigGrpcServiceSourceArgs) ToApiConfigGrpcServiceSourceOutput() ApiConfigGrpcServiceSourceOutput

func (ApiConfigGrpcServiceSourceArgs) ToApiConfigGrpcServiceSourceOutputWithContext added in v6.29.0

func (i ApiConfigGrpcServiceSourceArgs) ToApiConfigGrpcServiceSourceOutputWithContext(ctx context.Context) ApiConfigGrpcServiceSourceOutput

func (ApiConfigGrpcServiceSourceArgs) ToOutput added in v6.65.1

type ApiConfigGrpcServiceSourceArray added in v6.29.0

type ApiConfigGrpcServiceSourceArray []ApiConfigGrpcServiceSourceInput

func (ApiConfigGrpcServiceSourceArray) ElementType added in v6.29.0

func (ApiConfigGrpcServiceSourceArray) ToApiConfigGrpcServiceSourceArrayOutput added in v6.29.0

func (i ApiConfigGrpcServiceSourceArray) ToApiConfigGrpcServiceSourceArrayOutput() ApiConfigGrpcServiceSourceArrayOutput

func (ApiConfigGrpcServiceSourceArray) ToApiConfigGrpcServiceSourceArrayOutputWithContext added in v6.29.0

func (i ApiConfigGrpcServiceSourceArray) ToApiConfigGrpcServiceSourceArrayOutputWithContext(ctx context.Context) ApiConfigGrpcServiceSourceArrayOutput

func (ApiConfigGrpcServiceSourceArray) ToOutput added in v6.65.1

type ApiConfigGrpcServiceSourceArrayInput added in v6.29.0

type ApiConfigGrpcServiceSourceArrayInput interface {
	pulumi.Input

	ToApiConfigGrpcServiceSourceArrayOutput() ApiConfigGrpcServiceSourceArrayOutput
	ToApiConfigGrpcServiceSourceArrayOutputWithContext(context.Context) ApiConfigGrpcServiceSourceArrayOutput
}

ApiConfigGrpcServiceSourceArrayInput is an input type that accepts ApiConfigGrpcServiceSourceArray and ApiConfigGrpcServiceSourceArrayOutput values. You can construct a concrete instance of `ApiConfigGrpcServiceSourceArrayInput` via:

ApiConfigGrpcServiceSourceArray{ ApiConfigGrpcServiceSourceArgs{...} }

type ApiConfigGrpcServiceSourceArrayOutput added in v6.29.0

type ApiConfigGrpcServiceSourceArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigGrpcServiceSourceArrayOutput) ElementType added in v6.29.0

func (ApiConfigGrpcServiceSourceArrayOutput) Index added in v6.29.0

func (ApiConfigGrpcServiceSourceArrayOutput) ToApiConfigGrpcServiceSourceArrayOutput added in v6.29.0

func (o ApiConfigGrpcServiceSourceArrayOutput) ToApiConfigGrpcServiceSourceArrayOutput() ApiConfigGrpcServiceSourceArrayOutput

func (ApiConfigGrpcServiceSourceArrayOutput) ToApiConfigGrpcServiceSourceArrayOutputWithContext added in v6.29.0

func (o ApiConfigGrpcServiceSourceArrayOutput) ToApiConfigGrpcServiceSourceArrayOutputWithContext(ctx context.Context) ApiConfigGrpcServiceSourceArrayOutput

func (ApiConfigGrpcServiceSourceArrayOutput) ToOutput added in v6.65.1

type ApiConfigGrpcServiceSourceInput added in v6.29.0

type ApiConfigGrpcServiceSourceInput interface {
	pulumi.Input

	ToApiConfigGrpcServiceSourceOutput() ApiConfigGrpcServiceSourceOutput
	ToApiConfigGrpcServiceSourceOutputWithContext(context.Context) ApiConfigGrpcServiceSourceOutput
}

ApiConfigGrpcServiceSourceInput is an input type that accepts ApiConfigGrpcServiceSourceArgs and ApiConfigGrpcServiceSourceOutput values. You can construct a concrete instance of `ApiConfigGrpcServiceSourceInput` via:

ApiConfigGrpcServiceSourceArgs{...}

type ApiConfigGrpcServiceSourceOutput added in v6.29.0

type ApiConfigGrpcServiceSourceOutput struct{ *pulumi.OutputState }

func (ApiConfigGrpcServiceSourceOutput) Contents added in v6.29.0

Base64 encoded content of the file.

func (ApiConfigGrpcServiceSourceOutput) ElementType added in v6.29.0

func (ApiConfigGrpcServiceSourceOutput) Path added in v6.29.0

The file path (full or relative path). This is typically the path of the file when it is uploaded.

func (ApiConfigGrpcServiceSourceOutput) ToApiConfigGrpcServiceSourceOutput added in v6.29.0

func (o ApiConfigGrpcServiceSourceOutput) ToApiConfigGrpcServiceSourceOutput() ApiConfigGrpcServiceSourceOutput

func (ApiConfigGrpcServiceSourceOutput) ToApiConfigGrpcServiceSourceOutputWithContext added in v6.29.0

func (o ApiConfigGrpcServiceSourceOutput) ToApiConfigGrpcServiceSourceOutputWithContext(ctx context.Context) ApiConfigGrpcServiceSourceOutput

func (ApiConfigGrpcServiceSourceOutput) ToOutput added in v6.65.1

type ApiConfigIamBinding

type ApiConfigIamBinding struct {
	pulumi.CustomResourceState

	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringOutput                   `pulumi:"api"`
	ApiConfig pulumi.StringOutput                   `pulumi:"apiConfig"`
	Condition ApiConfigIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	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
	// `apigateway.ApiConfigIamBinding` 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 API Gateway ApiConfig. Each of these resources serves a different use case:

* `apigateway.ApiConfigIamPolicy`: Authoritative. Sets the IAM policy for the apiconfig and replaces any existing policy already attached. * `apigateway.ApiConfigIamBinding`: 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 apiconfig are preserved. * `apigateway.ApiConfigIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the apiconfig are preserved.

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

* `apigateway.ApiConfigIamPolicy`: Retrieves the IAM policy for the apiconfig

> **Note:** `apigateway.ApiConfigIamPolicy` **cannot** be used in conjunction with `apigateway.ApiConfigIamBinding` and `apigateway.ApiConfigIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_config\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiConfigIamPolicy(ctx, "policy", &apigateway.ApiConfigIamPolicyArgs{
			Api:        pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig:  pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamBinding(ctx, "binding", &apigateway.ApiConfigIamBindingArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamMember(ctx, "member", &apigateway.ApiConfigIamMemberArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Member:    pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}}/configs/{{api_config}} * {{project}}/{{api}}/{{api_config}} * {{api}}/{{api_config}} * {{api_config}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway apiconfig 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:apigateway/apiConfigIamBinding:ApiConfigIamBinding editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamBinding:ApiConfigIamBinding editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamBinding:ApiConfigIamBinding editor projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}}

```

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

func GetApiConfigIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiConfigIamBindingState, opts ...pulumi.ResourceOption) (*ApiConfigIamBinding, error)

GetApiConfigIamBinding gets an existing ApiConfigIamBinding 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 NewApiConfigIamBinding

func NewApiConfigIamBinding(ctx *pulumi.Context,
	name string, args *ApiConfigIamBindingArgs, opts ...pulumi.ResourceOption) (*ApiConfigIamBinding, error)

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

func (*ApiConfigIamBinding) ElementType

func (*ApiConfigIamBinding) ElementType() reflect.Type

func (*ApiConfigIamBinding) ToApiConfigIamBindingOutput

func (i *ApiConfigIamBinding) ToApiConfigIamBindingOutput() ApiConfigIamBindingOutput

func (*ApiConfigIamBinding) ToApiConfigIamBindingOutputWithContext

func (i *ApiConfigIamBinding) ToApiConfigIamBindingOutputWithContext(ctx context.Context) ApiConfigIamBindingOutput

func (*ApiConfigIamBinding) ToOutput added in v6.65.1

type ApiConfigIamBindingArgs

type ApiConfigIamBindingArgs struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringInput
	ApiConfig pulumi.StringInput
	Condition ApiConfigIamBindingConditionPtrInput
	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
	// `apigateway.ApiConfigIamBinding` 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 ApiConfigIamBinding resource.

func (ApiConfigIamBindingArgs) ElementType

func (ApiConfigIamBindingArgs) ElementType() reflect.Type

type ApiConfigIamBindingArray

type ApiConfigIamBindingArray []ApiConfigIamBindingInput

func (ApiConfigIamBindingArray) ElementType

func (ApiConfigIamBindingArray) ElementType() reflect.Type

func (ApiConfigIamBindingArray) ToApiConfigIamBindingArrayOutput

func (i ApiConfigIamBindingArray) ToApiConfigIamBindingArrayOutput() ApiConfigIamBindingArrayOutput

func (ApiConfigIamBindingArray) ToApiConfigIamBindingArrayOutputWithContext

func (i ApiConfigIamBindingArray) ToApiConfigIamBindingArrayOutputWithContext(ctx context.Context) ApiConfigIamBindingArrayOutput

func (ApiConfigIamBindingArray) ToOutput added in v6.65.1

type ApiConfigIamBindingArrayInput

type ApiConfigIamBindingArrayInput interface {
	pulumi.Input

	ToApiConfigIamBindingArrayOutput() ApiConfigIamBindingArrayOutput
	ToApiConfigIamBindingArrayOutputWithContext(context.Context) ApiConfigIamBindingArrayOutput
}

ApiConfigIamBindingArrayInput is an input type that accepts ApiConfigIamBindingArray and ApiConfigIamBindingArrayOutput values. You can construct a concrete instance of `ApiConfigIamBindingArrayInput` via:

ApiConfigIamBindingArray{ ApiConfigIamBindingArgs{...} }

type ApiConfigIamBindingArrayOutput

type ApiConfigIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigIamBindingArrayOutput) ElementType

func (ApiConfigIamBindingArrayOutput) Index

func (ApiConfigIamBindingArrayOutput) ToApiConfigIamBindingArrayOutput

func (o ApiConfigIamBindingArrayOutput) ToApiConfigIamBindingArrayOutput() ApiConfigIamBindingArrayOutput

func (ApiConfigIamBindingArrayOutput) ToApiConfigIamBindingArrayOutputWithContext

func (o ApiConfigIamBindingArrayOutput) ToApiConfigIamBindingArrayOutputWithContext(ctx context.Context) ApiConfigIamBindingArrayOutput

func (ApiConfigIamBindingArrayOutput) ToOutput added in v6.65.1

type ApiConfigIamBindingCondition

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

type ApiConfigIamBindingConditionArgs

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

func (ApiConfigIamBindingConditionArgs) ElementType

func (ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionOutput

func (i ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionOutput() ApiConfigIamBindingConditionOutput

func (ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionOutputWithContext

func (i ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionOutputWithContext(ctx context.Context) ApiConfigIamBindingConditionOutput

func (ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionPtrOutput

func (i ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionPtrOutput() ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionPtrOutputWithContext

func (i ApiConfigIamBindingConditionArgs) ToApiConfigIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionArgs) ToOutput added in v6.65.1

type ApiConfigIamBindingConditionInput

type ApiConfigIamBindingConditionInput interface {
	pulumi.Input

	ToApiConfigIamBindingConditionOutput() ApiConfigIamBindingConditionOutput
	ToApiConfigIamBindingConditionOutputWithContext(context.Context) ApiConfigIamBindingConditionOutput
}

ApiConfigIamBindingConditionInput is an input type that accepts ApiConfigIamBindingConditionArgs and ApiConfigIamBindingConditionOutput values. You can construct a concrete instance of `ApiConfigIamBindingConditionInput` via:

ApiConfigIamBindingConditionArgs{...}

type ApiConfigIamBindingConditionOutput

type ApiConfigIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ApiConfigIamBindingConditionOutput) Description

func (ApiConfigIamBindingConditionOutput) ElementType

func (ApiConfigIamBindingConditionOutput) Expression

func (ApiConfigIamBindingConditionOutput) Title

func (ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionOutput

func (o ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionOutput() ApiConfigIamBindingConditionOutput

func (ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionOutputWithContext

func (o ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionOutputWithContext(ctx context.Context) ApiConfigIamBindingConditionOutput

func (ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionPtrOutput

func (o ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionPtrOutput() ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionPtrOutputWithContext

func (o ApiConfigIamBindingConditionOutput) ToApiConfigIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionOutput) ToOutput added in v6.65.1

type ApiConfigIamBindingConditionPtrInput

type ApiConfigIamBindingConditionPtrInput interface {
	pulumi.Input

	ToApiConfigIamBindingConditionPtrOutput() ApiConfigIamBindingConditionPtrOutput
	ToApiConfigIamBindingConditionPtrOutputWithContext(context.Context) ApiConfigIamBindingConditionPtrOutput
}

ApiConfigIamBindingConditionPtrInput is an input type that accepts ApiConfigIamBindingConditionArgs, ApiConfigIamBindingConditionPtr and ApiConfigIamBindingConditionPtrOutput values. You can construct a concrete instance of `ApiConfigIamBindingConditionPtrInput` via:

        ApiConfigIamBindingConditionArgs{...}

or:

        nil

type ApiConfigIamBindingConditionPtrOutput

type ApiConfigIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ApiConfigIamBindingConditionPtrOutput) Description

func (ApiConfigIamBindingConditionPtrOutput) Elem

func (ApiConfigIamBindingConditionPtrOutput) ElementType

func (ApiConfigIamBindingConditionPtrOutput) Expression

func (ApiConfigIamBindingConditionPtrOutput) Title

func (ApiConfigIamBindingConditionPtrOutput) ToApiConfigIamBindingConditionPtrOutput

func (o ApiConfigIamBindingConditionPtrOutput) ToApiConfigIamBindingConditionPtrOutput() ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionPtrOutput) ToApiConfigIamBindingConditionPtrOutputWithContext

func (o ApiConfigIamBindingConditionPtrOutput) ToApiConfigIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamBindingConditionPtrOutput

func (ApiConfigIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type ApiConfigIamBindingInput

type ApiConfigIamBindingInput interface {
	pulumi.Input

	ToApiConfigIamBindingOutput() ApiConfigIamBindingOutput
	ToApiConfigIamBindingOutputWithContext(ctx context.Context) ApiConfigIamBindingOutput
}

type ApiConfigIamBindingMap

type ApiConfigIamBindingMap map[string]ApiConfigIamBindingInput

func (ApiConfigIamBindingMap) ElementType

func (ApiConfigIamBindingMap) ElementType() reflect.Type

func (ApiConfigIamBindingMap) ToApiConfigIamBindingMapOutput

func (i ApiConfigIamBindingMap) ToApiConfigIamBindingMapOutput() ApiConfigIamBindingMapOutput

func (ApiConfigIamBindingMap) ToApiConfigIamBindingMapOutputWithContext

func (i ApiConfigIamBindingMap) ToApiConfigIamBindingMapOutputWithContext(ctx context.Context) ApiConfigIamBindingMapOutput

func (ApiConfigIamBindingMap) ToOutput added in v6.65.1

type ApiConfigIamBindingMapInput

type ApiConfigIamBindingMapInput interface {
	pulumi.Input

	ToApiConfigIamBindingMapOutput() ApiConfigIamBindingMapOutput
	ToApiConfigIamBindingMapOutputWithContext(context.Context) ApiConfigIamBindingMapOutput
}

ApiConfigIamBindingMapInput is an input type that accepts ApiConfigIamBindingMap and ApiConfigIamBindingMapOutput values. You can construct a concrete instance of `ApiConfigIamBindingMapInput` via:

ApiConfigIamBindingMap{ "key": ApiConfigIamBindingArgs{...} }

type ApiConfigIamBindingMapOutput

type ApiConfigIamBindingMapOutput struct{ *pulumi.OutputState }

func (ApiConfigIamBindingMapOutput) ElementType

func (ApiConfigIamBindingMapOutput) MapIndex

func (ApiConfigIamBindingMapOutput) ToApiConfigIamBindingMapOutput

func (o ApiConfigIamBindingMapOutput) ToApiConfigIamBindingMapOutput() ApiConfigIamBindingMapOutput

func (ApiConfigIamBindingMapOutput) ToApiConfigIamBindingMapOutputWithContext

func (o ApiConfigIamBindingMapOutput) ToApiConfigIamBindingMapOutputWithContext(ctx context.Context) ApiConfigIamBindingMapOutput

func (ApiConfigIamBindingMapOutput) ToOutput added in v6.65.1

type ApiConfigIamBindingOutput

type ApiConfigIamBindingOutput struct{ *pulumi.OutputState }

func (ApiConfigIamBindingOutput) Api added in v6.23.0

The API to attach the config to. Used to find the parent resource to bind the IAM policy to

func (ApiConfigIamBindingOutput) ApiConfig added in v6.23.0

func (ApiConfigIamBindingOutput) Condition added in v6.23.0

func (ApiConfigIamBindingOutput) ElementType

func (ApiConfigIamBindingOutput) ElementType() reflect.Type

func (ApiConfigIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiConfigIamBindingOutput) Members added in v6.23.0

func (ApiConfigIamBindingOutput) Project added in v6.23.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 (ApiConfigIamBindingOutput) Role added in v6.23.0

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

func (ApiConfigIamBindingOutput) ToApiConfigIamBindingOutput

func (o ApiConfigIamBindingOutput) ToApiConfigIamBindingOutput() ApiConfigIamBindingOutput

func (ApiConfigIamBindingOutput) ToApiConfigIamBindingOutputWithContext

func (o ApiConfigIamBindingOutput) ToApiConfigIamBindingOutputWithContext(ctx context.Context) ApiConfigIamBindingOutput

func (ApiConfigIamBindingOutput) ToOutput added in v6.65.1

type ApiConfigIamBindingState

type ApiConfigIamBindingState struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringPtrInput
	ApiConfig pulumi.StringPtrInput
	Condition ApiConfigIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    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
	// `apigateway.ApiConfigIamBinding` 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 (ApiConfigIamBindingState) ElementType

func (ApiConfigIamBindingState) ElementType() reflect.Type

type ApiConfigIamMember

type ApiConfigIamMember struct {
	pulumi.CustomResourceState

	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringOutput                  `pulumi:"api"`
	ApiConfig pulumi.StringOutput                  `pulumi:"apiConfig"`
	Condition ApiConfigIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	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
	// `apigateway.ApiConfigIamBinding` 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 API Gateway ApiConfig. Each of these resources serves a different use case:

* `apigateway.ApiConfigIamPolicy`: Authoritative. Sets the IAM policy for the apiconfig and replaces any existing policy already attached. * `apigateway.ApiConfigIamBinding`: 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 apiconfig are preserved. * `apigateway.ApiConfigIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the apiconfig are preserved.

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

* `apigateway.ApiConfigIamPolicy`: Retrieves the IAM policy for the apiconfig

> **Note:** `apigateway.ApiConfigIamPolicy` **cannot** be used in conjunction with `apigateway.ApiConfigIamBinding` and `apigateway.ApiConfigIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_config\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiConfigIamPolicy(ctx, "policy", &apigateway.ApiConfigIamPolicyArgs{
			Api:        pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig:  pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamBinding(ctx, "binding", &apigateway.ApiConfigIamBindingArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamMember(ctx, "member", &apigateway.ApiConfigIamMemberArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Member:    pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}}/configs/{{api_config}} * {{project}}/{{api}}/{{api_config}} * {{api}}/{{api_config}} * {{api_config}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway apiconfig 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:apigateway/apiConfigIamMember:ApiConfigIamMember editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamMember:ApiConfigIamMember editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamMember:ApiConfigIamMember editor projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}}

```

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

func GetApiConfigIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiConfigIamMemberState, opts ...pulumi.ResourceOption) (*ApiConfigIamMember, error)

GetApiConfigIamMember gets an existing ApiConfigIamMember 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 NewApiConfigIamMember

func NewApiConfigIamMember(ctx *pulumi.Context,
	name string, args *ApiConfigIamMemberArgs, opts ...pulumi.ResourceOption) (*ApiConfigIamMember, error)

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

func (*ApiConfigIamMember) ElementType

func (*ApiConfigIamMember) ElementType() reflect.Type

func (*ApiConfigIamMember) ToApiConfigIamMemberOutput

func (i *ApiConfigIamMember) ToApiConfigIamMemberOutput() ApiConfigIamMemberOutput

func (*ApiConfigIamMember) ToApiConfigIamMemberOutputWithContext

func (i *ApiConfigIamMember) ToApiConfigIamMemberOutputWithContext(ctx context.Context) ApiConfigIamMemberOutput

func (*ApiConfigIamMember) ToOutput added in v6.65.1

type ApiConfigIamMemberArgs

type ApiConfigIamMemberArgs struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringInput
	ApiConfig pulumi.StringInput
	Condition ApiConfigIamMemberConditionPtrInput
	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
	// `apigateway.ApiConfigIamBinding` 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 ApiConfigIamMember resource.

func (ApiConfigIamMemberArgs) ElementType

func (ApiConfigIamMemberArgs) ElementType() reflect.Type

type ApiConfigIamMemberArray

type ApiConfigIamMemberArray []ApiConfigIamMemberInput

func (ApiConfigIamMemberArray) ElementType

func (ApiConfigIamMemberArray) ElementType() reflect.Type

func (ApiConfigIamMemberArray) ToApiConfigIamMemberArrayOutput

func (i ApiConfigIamMemberArray) ToApiConfigIamMemberArrayOutput() ApiConfigIamMemberArrayOutput

func (ApiConfigIamMemberArray) ToApiConfigIamMemberArrayOutputWithContext

func (i ApiConfigIamMemberArray) ToApiConfigIamMemberArrayOutputWithContext(ctx context.Context) ApiConfigIamMemberArrayOutput

func (ApiConfigIamMemberArray) ToOutput added in v6.65.1

type ApiConfigIamMemberArrayInput

type ApiConfigIamMemberArrayInput interface {
	pulumi.Input

	ToApiConfigIamMemberArrayOutput() ApiConfigIamMemberArrayOutput
	ToApiConfigIamMemberArrayOutputWithContext(context.Context) ApiConfigIamMemberArrayOutput
}

ApiConfigIamMemberArrayInput is an input type that accepts ApiConfigIamMemberArray and ApiConfigIamMemberArrayOutput values. You can construct a concrete instance of `ApiConfigIamMemberArrayInput` via:

ApiConfigIamMemberArray{ ApiConfigIamMemberArgs{...} }

type ApiConfigIamMemberArrayOutput

type ApiConfigIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigIamMemberArrayOutput) ElementType

func (ApiConfigIamMemberArrayOutput) Index

func (ApiConfigIamMemberArrayOutput) ToApiConfigIamMemberArrayOutput

func (o ApiConfigIamMemberArrayOutput) ToApiConfigIamMemberArrayOutput() ApiConfigIamMemberArrayOutput

func (ApiConfigIamMemberArrayOutput) ToApiConfigIamMemberArrayOutputWithContext

func (o ApiConfigIamMemberArrayOutput) ToApiConfigIamMemberArrayOutputWithContext(ctx context.Context) ApiConfigIamMemberArrayOutput

func (ApiConfigIamMemberArrayOutput) ToOutput added in v6.65.1

type ApiConfigIamMemberCondition

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

type ApiConfigIamMemberConditionArgs

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

func (ApiConfigIamMemberConditionArgs) ElementType

func (ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionOutput

func (i ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionOutput() ApiConfigIamMemberConditionOutput

func (ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionOutputWithContext

func (i ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionOutputWithContext(ctx context.Context) ApiConfigIamMemberConditionOutput

func (ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionPtrOutput

func (i ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionPtrOutput() ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionPtrOutputWithContext

func (i ApiConfigIamMemberConditionArgs) ToApiConfigIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionArgs) ToOutput added in v6.65.1

type ApiConfigIamMemberConditionInput

type ApiConfigIamMemberConditionInput interface {
	pulumi.Input

	ToApiConfigIamMemberConditionOutput() ApiConfigIamMemberConditionOutput
	ToApiConfigIamMemberConditionOutputWithContext(context.Context) ApiConfigIamMemberConditionOutput
}

ApiConfigIamMemberConditionInput is an input type that accepts ApiConfigIamMemberConditionArgs and ApiConfigIamMemberConditionOutput values. You can construct a concrete instance of `ApiConfigIamMemberConditionInput` via:

ApiConfigIamMemberConditionArgs{...}

type ApiConfigIamMemberConditionOutput

type ApiConfigIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ApiConfigIamMemberConditionOutput) Description

func (ApiConfigIamMemberConditionOutput) ElementType

func (ApiConfigIamMemberConditionOutput) Expression

func (ApiConfigIamMemberConditionOutput) Title

func (ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionOutput

func (o ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionOutput() ApiConfigIamMemberConditionOutput

func (ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionOutputWithContext

func (o ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionOutputWithContext(ctx context.Context) ApiConfigIamMemberConditionOutput

func (ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionPtrOutput

func (o ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionPtrOutput() ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionPtrOutputWithContext

func (o ApiConfigIamMemberConditionOutput) ToApiConfigIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionOutput) ToOutput added in v6.65.1

type ApiConfigIamMemberConditionPtrInput

type ApiConfigIamMemberConditionPtrInput interface {
	pulumi.Input

	ToApiConfigIamMemberConditionPtrOutput() ApiConfigIamMemberConditionPtrOutput
	ToApiConfigIamMemberConditionPtrOutputWithContext(context.Context) ApiConfigIamMemberConditionPtrOutput
}

ApiConfigIamMemberConditionPtrInput is an input type that accepts ApiConfigIamMemberConditionArgs, ApiConfigIamMemberConditionPtr and ApiConfigIamMemberConditionPtrOutput values. You can construct a concrete instance of `ApiConfigIamMemberConditionPtrInput` via:

        ApiConfigIamMemberConditionArgs{...}

or:

        nil

type ApiConfigIamMemberConditionPtrOutput

type ApiConfigIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ApiConfigIamMemberConditionPtrOutput) Description

func (ApiConfigIamMemberConditionPtrOutput) Elem

func (ApiConfigIamMemberConditionPtrOutput) ElementType

func (ApiConfigIamMemberConditionPtrOutput) Expression

func (ApiConfigIamMemberConditionPtrOutput) Title

func (ApiConfigIamMemberConditionPtrOutput) ToApiConfigIamMemberConditionPtrOutput

func (o ApiConfigIamMemberConditionPtrOutput) ToApiConfigIamMemberConditionPtrOutput() ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionPtrOutput) ToApiConfigIamMemberConditionPtrOutputWithContext

func (o ApiConfigIamMemberConditionPtrOutput) ToApiConfigIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiConfigIamMemberConditionPtrOutput

func (ApiConfigIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type ApiConfigIamMemberInput

type ApiConfigIamMemberInput interface {
	pulumi.Input

	ToApiConfigIamMemberOutput() ApiConfigIamMemberOutput
	ToApiConfigIamMemberOutputWithContext(ctx context.Context) ApiConfigIamMemberOutput
}

type ApiConfigIamMemberMap

type ApiConfigIamMemberMap map[string]ApiConfigIamMemberInput

func (ApiConfigIamMemberMap) ElementType

func (ApiConfigIamMemberMap) ElementType() reflect.Type

func (ApiConfigIamMemberMap) ToApiConfigIamMemberMapOutput

func (i ApiConfigIamMemberMap) ToApiConfigIamMemberMapOutput() ApiConfigIamMemberMapOutput

func (ApiConfigIamMemberMap) ToApiConfigIamMemberMapOutputWithContext

func (i ApiConfigIamMemberMap) ToApiConfigIamMemberMapOutputWithContext(ctx context.Context) ApiConfigIamMemberMapOutput

func (ApiConfigIamMemberMap) ToOutput added in v6.65.1

type ApiConfigIamMemberMapInput

type ApiConfigIamMemberMapInput interface {
	pulumi.Input

	ToApiConfigIamMemberMapOutput() ApiConfigIamMemberMapOutput
	ToApiConfigIamMemberMapOutputWithContext(context.Context) ApiConfigIamMemberMapOutput
}

ApiConfigIamMemberMapInput is an input type that accepts ApiConfigIamMemberMap and ApiConfigIamMemberMapOutput values. You can construct a concrete instance of `ApiConfigIamMemberMapInput` via:

ApiConfigIamMemberMap{ "key": ApiConfigIamMemberArgs{...} }

type ApiConfigIamMemberMapOutput

type ApiConfigIamMemberMapOutput struct{ *pulumi.OutputState }

func (ApiConfigIamMemberMapOutput) ElementType

func (ApiConfigIamMemberMapOutput) MapIndex

func (ApiConfigIamMemberMapOutput) ToApiConfigIamMemberMapOutput

func (o ApiConfigIamMemberMapOutput) ToApiConfigIamMemberMapOutput() ApiConfigIamMemberMapOutput

func (ApiConfigIamMemberMapOutput) ToApiConfigIamMemberMapOutputWithContext

func (o ApiConfigIamMemberMapOutput) ToApiConfigIamMemberMapOutputWithContext(ctx context.Context) ApiConfigIamMemberMapOutput

func (ApiConfigIamMemberMapOutput) ToOutput added in v6.65.1

type ApiConfigIamMemberOutput

type ApiConfigIamMemberOutput struct{ *pulumi.OutputState }

func (ApiConfigIamMemberOutput) Api added in v6.23.0

The API to attach the config to. Used to find the parent resource to bind the IAM policy to

func (ApiConfigIamMemberOutput) ApiConfig added in v6.23.0

func (ApiConfigIamMemberOutput) Condition added in v6.23.0

func (ApiConfigIamMemberOutput) ElementType

func (ApiConfigIamMemberOutput) ElementType() reflect.Type

func (ApiConfigIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiConfigIamMemberOutput) Member added in v6.23.0

func (ApiConfigIamMemberOutput) Project added in v6.23.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 (ApiConfigIamMemberOutput) Role added in v6.23.0

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

func (ApiConfigIamMemberOutput) ToApiConfigIamMemberOutput

func (o ApiConfigIamMemberOutput) ToApiConfigIamMemberOutput() ApiConfigIamMemberOutput

func (ApiConfigIamMemberOutput) ToApiConfigIamMemberOutputWithContext

func (o ApiConfigIamMemberOutput) ToApiConfigIamMemberOutputWithContext(ctx context.Context) ApiConfigIamMemberOutput

func (ApiConfigIamMemberOutput) ToOutput added in v6.65.1

type ApiConfigIamMemberState

type ApiConfigIamMemberState struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringPtrInput
	ApiConfig pulumi.StringPtrInput
	Condition ApiConfigIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   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
	// `apigateway.ApiConfigIamBinding` 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 (ApiConfigIamMemberState) ElementType

func (ApiConfigIamMemberState) ElementType() reflect.Type

type ApiConfigIamPolicy

type ApiConfigIamPolicy struct {
	pulumi.CustomResourceState

	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringOutput `pulumi:"api"`
	ApiConfig pulumi.StringOutput `pulumi:"apiConfig"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// 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 API Gateway ApiConfig. Each of these resources serves a different use case:

* `apigateway.ApiConfigIamPolicy`: Authoritative. Sets the IAM policy for the apiconfig and replaces any existing policy already attached. * `apigateway.ApiConfigIamBinding`: 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 apiconfig are preserved. * `apigateway.ApiConfigIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the apiconfig are preserved.

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

* `apigateway.ApiConfigIamPolicy`: Retrieves the IAM policy for the apiconfig

> **Note:** `apigateway.ApiConfigIamPolicy` **cannot** be used in conjunction with `apigateway.ApiConfigIamBinding` and `apigateway.ApiConfigIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_config\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiConfigIamPolicy(ctx, "policy", &apigateway.ApiConfigIamPolicyArgs{
			Api:        pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig:  pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamBinding(ctx, "binding", &apigateway.ApiConfigIamBindingArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_config\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiConfigIamMember(ctx, "member", &apigateway.ApiConfigIamMemberArgs{
			Api:       pulumi.Any(google_api_gateway_api_config.Api_cfg.Api),
			ApiConfig: pulumi.Any(google_api_gateway_api_config.Api_cfg.Api_config_id),
			Role:      pulumi.String("roles/apigateway.viewer"),
			Member:    pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}}/configs/{{api_config}} * {{project}}/{{api}}/{{api_config}} * {{api}}/{{api_config}} * {{api_config}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway apiconfig 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:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy editor "projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy editor projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config}}

```

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

func GetApiConfigIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiConfigIamPolicyState, opts ...pulumi.ResourceOption) (*ApiConfigIamPolicy, error)

GetApiConfigIamPolicy gets an existing ApiConfigIamPolicy 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 NewApiConfigIamPolicy

func NewApiConfigIamPolicy(ctx *pulumi.Context,
	name string, args *ApiConfigIamPolicyArgs, opts ...pulumi.ResourceOption) (*ApiConfigIamPolicy, error)

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

func (*ApiConfigIamPolicy) ElementType

func (*ApiConfigIamPolicy) ElementType() reflect.Type

func (*ApiConfigIamPolicy) ToApiConfigIamPolicyOutput

func (i *ApiConfigIamPolicy) ToApiConfigIamPolicyOutput() ApiConfigIamPolicyOutput

func (*ApiConfigIamPolicy) ToApiConfigIamPolicyOutputWithContext

func (i *ApiConfigIamPolicy) ToApiConfigIamPolicyOutputWithContext(ctx context.Context) ApiConfigIamPolicyOutput

func (*ApiConfigIamPolicy) ToOutput added in v6.65.1

type ApiConfigIamPolicyArgs

type ApiConfigIamPolicyArgs struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringInput
	ApiConfig pulumi.StringInput
	// 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 ApiConfigIamPolicy resource.

func (ApiConfigIamPolicyArgs) ElementType

func (ApiConfigIamPolicyArgs) ElementType() reflect.Type

type ApiConfigIamPolicyArray

type ApiConfigIamPolicyArray []ApiConfigIamPolicyInput

func (ApiConfigIamPolicyArray) ElementType

func (ApiConfigIamPolicyArray) ElementType() reflect.Type

func (ApiConfigIamPolicyArray) ToApiConfigIamPolicyArrayOutput

func (i ApiConfigIamPolicyArray) ToApiConfigIamPolicyArrayOutput() ApiConfigIamPolicyArrayOutput

func (ApiConfigIamPolicyArray) ToApiConfigIamPolicyArrayOutputWithContext

func (i ApiConfigIamPolicyArray) ToApiConfigIamPolicyArrayOutputWithContext(ctx context.Context) ApiConfigIamPolicyArrayOutput

func (ApiConfigIamPolicyArray) ToOutput added in v6.65.1

type ApiConfigIamPolicyArrayInput

type ApiConfigIamPolicyArrayInput interface {
	pulumi.Input

	ToApiConfigIamPolicyArrayOutput() ApiConfigIamPolicyArrayOutput
	ToApiConfigIamPolicyArrayOutputWithContext(context.Context) ApiConfigIamPolicyArrayOutput
}

ApiConfigIamPolicyArrayInput is an input type that accepts ApiConfigIamPolicyArray and ApiConfigIamPolicyArrayOutput values. You can construct a concrete instance of `ApiConfigIamPolicyArrayInput` via:

ApiConfigIamPolicyArray{ ApiConfigIamPolicyArgs{...} }

type ApiConfigIamPolicyArrayOutput

type ApiConfigIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigIamPolicyArrayOutput) ElementType

func (ApiConfigIamPolicyArrayOutput) Index

func (ApiConfigIamPolicyArrayOutput) ToApiConfigIamPolicyArrayOutput

func (o ApiConfigIamPolicyArrayOutput) ToApiConfigIamPolicyArrayOutput() ApiConfigIamPolicyArrayOutput

func (ApiConfigIamPolicyArrayOutput) ToApiConfigIamPolicyArrayOutputWithContext

func (o ApiConfigIamPolicyArrayOutput) ToApiConfigIamPolicyArrayOutputWithContext(ctx context.Context) ApiConfigIamPolicyArrayOutput

func (ApiConfigIamPolicyArrayOutput) ToOutput added in v6.65.1

type ApiConfigIamPolicyInput

type ApiConfigIamPolicyInput interface {
	pulumi.Input

	ToApiConfigIamPolicyOutput() ApiConfigIamPolicyOutput
	ToApiConfigIamPolicyOutputWithContext(ctx context.Context) ApiConfigIamPolicyOutput
}

type ApiConfigIamPolicyMap

type ApiConfigIamPolicyMap map[string]ApiConfigIamPolicyInput

func (ApiConfigIamPolicyMap) ElementType

func (ApiConfigIamPolicyMap) ElementType() reflect.Type

func (ApiConfigIamPolicyMap) ToApiConfigIamPolicyMapOutput

func (i ApiConfigIamPolicyMap) ToApiConfigIamPolicyMapOutput() ApiConfigIamPolicyMapOutput

func (ApiConfigIamPolicyMap) ToApiConfigIamPolicyMapOutputWithContext

func (i ApiConfigIamPolicyMap) ToApiConfigIamPolicyMapOutputWithContext(ctx context.Context) ApiConfigIamPolicyMapOutput

func (ApiConfigIamPolicyMap) ToOutput added in v6.65.1

type ApiConfigIamPolicyMapInput

type ApiConfigIamPolicyMapInput interface {
	pulumi.Input

	ToApiConfigIamPolicyMapOutput() ApiConfigIamPolicyMapOutput
	ToApiConfigIamPolicyMapOutputWithContext(context.Context) ApiConfigIamPolicyMapOutput
}

ApiConfigIamPolicyMapInput is an input type that accepts ApiConfigIamPolicyMap and ApiConfigIamPolicyMapOutput values. You can construct a concrete instance of `ApiConfigIamPolicyMapInput` via:

ApiConfigIamPolicyMap{ "key": ApiConfigIamPolicyArgs{...} }

type ApiConfigIamPolicyMapOutput

type ApiConfigIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ApiConfigIamPolicyMapOutput) ElementType

func (ApiConfigIamPolicyMapOutput) MapIndex

func (ApiConfigIamPolicyMapOutput) ToApiConfigIamPolicyMapOutput

func (o ApiConfigIamPolicyMapOutput) ToApiConfigIamPolicyMapOutput() ApiConfigIamPolicyMapOutput

func (ApiConfigIamPolicyMapOutput) ToApiConfigIamPolicyMapOutputWithContext

func (o ApiConfigIamPolicyMapOutput) ToApiConfigIamPolicyMapOutputWithContext(ctx context.Context) ApiConfigIamPolicyMapOutput

func (ApiConfigIamPolicyMapOutput) ToOutput added in v6.65.1

type ApiConfigIamPolicyOutput

type ApiConfigIamPolicyOutput struct{ *pulumi.OutputState }

func (ApiConfigIamPolicyOutput) Api added in v6.23.0

The API to attach the config to. Used to find the parent resource to bind the IAM policy to

func (ApiConfigIamPolicyOutput) ApiConfig added in v6.23.0

func (ApiConfigIamPolicyOutput) ElementType

func (ApiConfigIamPolicyOutput) ElementType() reflect.Type

func (ApiConfigIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiConfigIamPolicyOutput) PolicyData added in v6.23.0

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

func (ApiConfigIamPolicyOutput) Project added in v6.23.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 (ApiConfigIamPolicyOutput) ToApiConfigIamPolicyOutput

func (o ApiConfigIamPolicyOutput) ToApiConfigIamPolicyOutput() ApiConfigIamPolicyOutput

func (ApiConfigIamPolicyOutput) ToApiConfigIamPolicyOutputWithContext

func (o ApiConfigIamPolicyOutput) ToApiConfigIamPolicyOutputWithContext(ctx context.Context) ApiConfigIamPolicyOutput

func (ApiConfigIamPolicyOutput) ToOutput added in v6.65.1

type ApiConfigIamPolicyState

type ApiConfigIamPolicyState struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringPtrInput
	ApiConfig pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// 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 (ApiConfigIamPolicyState) ElementType

func (ApiConfigIamPolicyState) ElementType() reflect.Type

type ApiConfigInput

type ApiConfigInput interface {
	pulumi.Input

	ToApiConfigOutput() ApiConfigOutput
	ToApiConfigOutputWithContext(ctx context.Context) ApiConfigOutput
}

type ApiConfigManagedServiceConfig added in v6.29.0

type ApiConfigManagedServiceConfig struct {
	// Base64 encoded content of the file.
	Contents string `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path string `pulumi:"path"`
}

type ApiConfigManagedServiceConfigArgs added in v6.29.0

type ApiConfigManagedServiceConfigArgs struct {
	// Base64 encoded content of the file.
	Contents pulumi.StringInput `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path pulumi.StringInput `pulumi:"path"`
}

func (ApiConfigManagedServiceConfigArgs) ElementType added in v6.29.0

func (ApiConfigManagedServiceConfigArgs) ToApiConfigManagedServiceConfigOutput added in v6.29.0

func (i ApiConfigManagedServiceConfigArgs) ToApiConfigManagedServiceConfigOutput() ApiConfigManagedServiceConfigOutput

func (ApiConfigManagedServiceConfigArgs) ToApiConfigManagedServiceConfigOutputWithContext added in v6.29.0

func (i ApiConfigManagedServiceConfigArgs) ToApiConfigManagedServiceConfigOutputWithContext(ctx context.Context) ApiConfigManagedServiceConfigOutput

func (ApiConfigManagedServiceConfigArgs) ToOutput added in v6.65.1

type ApiConfigManagedServiceConfigArray added in v6.29.0

type ApiConfigManagedServiceConfigArray []ApiConfigManagedServiceConfigInput

func (ApiConfigManagedServiceConfigArray) ElementType added in v6.29.0

func (ApiConfigManagedServiceConfigArray) ToApiConfigManagedServiceConfigArrayOutput added in v6.29.0

func (i ApiConfigManagedServiceConfigArray) ToApiConfigManagedServiceConfigArrayOutput() ApiConfigManagedServiceConfigArrayOutput

func (ApiConfigManagedServiceConfigArray) ToApiConfigManagedServiceConfigArrayOutputWithContext added in v6.29.0

func (i ApiConfigManagedServiceConfigArray) ToApiConfigManagedServiceConfigArrayOutputWithContext(ctx context.Context) ApiConfigManagedServiceConfigArrayOutput

func (ApiConfigManagedServiceConfigArray) ToOutput added in v6.65.1

type ApiConfigManagedServiceConfigArrayInput added in v6.29.0

type ApiConfigManagedServiceConfigArrayInput interface {
	pulumi.Input

	ToApiConfigManagedServiceConfigArrayOutput() ApiConfigManagedServiceConfigArrayOutput
	ToApiConfigManagedServiceConfigArrayOutputWithContext(context.Context) ApiConfigManagedServiceConfigArrayOutput
}

ApiConfigManagedServiceConfigArrayInput is an input type that accepts ApiConfigManagedServiceConfigArray and ApiConfigManagedServiceConfigArrayOutput values. You can construct a concrete instance of `ApiConfigManagedServiceConfigArrayInput` via:

ApiConfigManagedServiceConfigArray{ ApiConfigManagedServiceConfigArgs{...} }

type ApiConfigManagedServiceConfigArrayOutput added in v6.29.0

type ApiConfigManagedServiceConfigArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigManagedServiceConfigArrayOutput) ElementType added in v6.29.0

func (ApiConfigManagedServiceConfigArrayOutput) Index added in v6.29.0

func (ApiConfigManagedServiceConfigArrayOutput) ToApiConfigManagedServiceConfigArrayOutput added in v6.29.0

func (o ApiConfigManagedServiceConfigArrayOutput) ToApiConfigManagedServiceConfigArrayOutput() ApiConfigManagedServiceConfigArrayOutput

func (ApiConfigManagedServiceConfigArrayOutput) ToApiConfigManagedServiceConfigArrayOutputWithContext added in v6.29.0

func (o ApiConfigManagedServiceConfigArrayOutput) ToApiConfigManagedServiceConfigArrayOutputWithContext(ctx context.Context) ApiConfigManagedServiceConfigArrayOutput

func (ApiConfigManagedServiceConfigArrayOutput) ToOutput added in v6.65.1

type ApiConfigManagedServiceConfigInput added in v6.29.0

type ApiConfigManagedServiceConfigInput interface {
	pulumi.Input

	ToApiConfigManagedServiceConfigOutput() ApiConfigManagedServiceConfigOutput
	ToApiConfigManagedServiceConfigOutputWithContext(context.Context) ApiConfigManagedServiceConfigOutput
}

ApiConfigManagedServiceConfigInput is an input type that accepts ApiConfigManagedServiceConfigArgs and ApiConfigManagedServiceConfigOutput values. You can construct a concrete instance of `ApiConfigManagedServiceConfigInput` via:

ApiConfigManagedServiceConfigArgs{...}

type ApiConfigManagedServiceConfigOutput added in v6.29.0

type ApiConfigManagedServiceConfigOutput struct{ *pulumi.OutputState }

func (ApiConfigManagedServiceConfigOutput) Contents added in v6.29.0

Base64 encoded content of the file.

func (ApiConfigManagedServiceConfigOutput) ElementType added in v6.29.0

func (ApiConfigManagedServiceConfigOutput) Path added in v6.29.0

The file path (full or relative path). This is typically the path of the file when it is uploaded.

func (ApiConfigManagedServiceConfigOutput) ToApiConfigManagedServiceConfigOutput added in v6.29.0

func (o ApiConfigManagedServiceConfigOutput) ToApiConfigManagedServiceConfigOutput() ApiConfigManagedServiceConfigOutput

func (ApiConfigManagedServiceConfigOutput) ToApiConfigManagedServiceConfigOutputWithContext added in v6.29.0

func (o ApiConfigManagedServiceConfigOutput) ToApiConfigManagedServiceConfigOutputWithContext(ctx context.Context) ApiConfigManagedServiceConfigOutput

func (ApiConfigManagedServiceConfigOutput) ToOutput added in v6.65.1

type ApiConfigMap

type ApiConfigMap map[string]ApiConfigInput

func (ApiConfigMap) ElementType

func (ApiConfigMap) ElementType() reflect.Type

func (ApiConfigMap) ToApiConfigMapOutput

func (i ApiConfigMap) ToApiConfigMapOutput() ApiConfigMapOutput

func (ApiConfigMap) ToApiConfigMapOutputWithContext

func (i ApiConfigMap) ToApiConfigMapOutputWithContext(ctx context.Context) ApiConfigMapOutput

func (ApiConfigMap) ToOutput added in v6.65.1

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

type ApiConfigMapInput

type ApiConfigMapInput interface {
	pulumi.Input

	ToApiConfigMapOutput() ApiConfigMapOutput
	ToApiConfigMapOutputWithContext(context.Context) ApiConfigMapOutput
}

ApiConfigMapInput is an input type that accepts ApiConfigMap and ApiConfigMapOutput values. You can construct a concrete instance of `ApiConfigMapInput` via:

ApiConfigMap{ "key": ApiConfigArgs{...} }

type ApiConfigMapOutput

type ApiConfigMapOutput struct{ *pulumi.OutputState }

func (ApiConfigMapOutput) ElementType

func (ApiConfigMapOutput) ElementType() reflect.Type

func (ApiConfigMapOutput) MapIndex

func (ApiConfigMapOutput) ToApiConfigMapOutput

func (o ApiConfigMapOutput) ToApiConfigMapOutput() ApiConfigMapOutput

func (ApiConfigMapOutput) ToApiConfigMapOutputWithContext

func (o ApiConfigMapOutput) ToApiConfigMapOutputWithContext(ctx context.Context) ApiConfigMapOutput

func (ApiConfigMapOutput) ToOutput added in v6.65.1

type ApiConfigOpenapiDocument

type ApiConfigOpenapiDocument struct {
	// The OpenAPI Specification document file.
	// Structure is documented below.
	Document ApiConfigOpenapiDocumentDocument `pulumi:"document"`
}

type ApiConfigOpenapiDocumentArgs

type ApiConfigOpenapiDocumentArgs struct {
	// The OpenAPI Specification document file.
	// Structure is documented below.
	Document ApiConfigOpenapiDocumentDocumentInput `pulumi:"document"`
}

func (ApiConfigOpenapiDocumentArgs) ElementType

func (ApiConfigOpenapiDocumentArgs) ToApiConfigOpenapiDocumentOutput

func (i ApiConfigOpenapiDocumentArgs) ToApiConfigOpenapiDocumentOutput() ApiConfigOpenapiDocumentOutput

func (ApiConfigOpenapiDocumentArgs) ToApiConfigOpenapiDocumentOutputWithContext

func (i ApiConfigOpenapiDocumentArgs) ToApiConfigOpenapiDocumentOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentOutput

func (ApiConfigOpenapiDocumentArgs) ToOutput added in v6.65.1

type ApiConfigOpenapiDocumentArray

type ApiConfigOpenapiDocumentArray []ApiConfigOpenapiDocumentInput

func (ApiConfigOpenapiDocumentArray) ElementType

func (ApiConfigOpenapiDocumentArray) ToApiConfigOpenapiDocumentArrayOutput

func (i ApiConfigOpenapiDocumentArray) ToApiConfigOpenapiDocumentArrayOutput() ApiConfigOpenapiDocumentArrayOutput

func (ApiConfigOpenapiDocumentArray) ToApiConfigOpenapiDocumentArrayOutputWithContext

func (i ApiConfigOpenapiDocumentArray) ToApiConfigOpenapiDocumentArrayOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentArrayOutput

func (ApiConfigOpenapiDocumentArray) ToOutput added in v6.65.1

type ApiConfigOpenapiDocumentArrayInput

type ApiConfigOpenapiDocumentArrayInput interface {
	pulumi.Input

	ToApiConfigOpenapiDocumentArrayOutput() ApiConfigOpenapiDocumentArrayOutput
	ToApiConfigOpenapiDocumentArrayOutputWithContext(context.Context) ApiConfigOpenapiDocumentArrayOutput
}

ApiConfigOpenapiDocumentArrayInput is an input type that accepts ApiConfigOpenapiDocumentArray and ApiConfigOpenapiDocumentArrayOutput values. You can construct a concrete instance of `ApiConfigOpenapiDocumentArrayInput` via:

ApiConfigOpenapiDocumentArray{ ApiConfigOpenapiDocumentArgs{...} }

type ApiConfigOpenapiDocumentArrayOutput

type ApiConfigOpenapiDocumentArrayOutput struct{ *pulumi.OutputState }

func (ApiConfigOpenapiDocumentArrayOutput) ElementType

func (ApiConfigOpenapiDocumentArrayOutput) Index

func (ApiConfigOpenapiDocumentArrayOutput) ToApiConfigOpenapiDocumentArrayOutput

func (o ApiConfigOpenapiDocumentArrayOutput) ToApiConfigOpenapiDocumentArrayOutput() ApiConfigOpenapiDocumentArrayOutput

func (ApiConfigOpenapiDocumentArrayOutput) ToApiConfigOpenapiDocumentArrayOutputWithContext

func (o ApiConfigOpenapiDocumentArrayOutput) ToApiConfigOpenapiDocumentArrayOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentArrayOutput

func (ApiConfigOpenapiDocumentArrayOutput) ToOutput added in v6.65.1

type ApiConfigOpenapiDocumentDocument

type ApiConfigOpenapiDocumentDocument struct {
	// Base64 encoded content of the file.
	Contents string `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path string `pulumi:"path"`
}

type ApiConfigOpenapiDocumentDocumentArgs

type ApiConfigOpenapiDocumentDocumentArgs struct {
	// Base64 encoded content of the file.
	Contents pulumi.StringInput `pulumi:"contents"`
	// The file path (full or relative path). This is typically the path of the file when it is uploaded.
	Path pulumi.StringInput `pulumi:"path"`
}

func (ApiConfigOpenapiDocumentDocumentArgs) ElementType

func (ApiConfigOpenapiDocumentDocumentArgs) ToApiConfigOpenapiDocumentDocumentOutput

func (i ApiConfigOpenapiDocumentDocumentArgs) ToApiConfigOpenapiDocumentDocumentOutput() ApiConfigOpenapiDocumentDocumentOutput

func (ApiConfigOpenapiDocumentDocumentArgs) ToApiConfigOpenapiDocumentDocumentOutputWithContext

func (i ApiConfigOpenapiDocumentDocumentArgs) ToApiConfigOpenapiDocumentDocumentOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentDocumentOutput

func (ApiConfigOpenapiDocumentDocumentArgs) ToOutput added in v6.65.1

type ApiConfigOpenapiDocumentDocumentInput

type ApiConfigOpenapiDocumentDocumentInput interface {
	pulumi.Input

	ToApiConfigOpenapiDocumentDocumentOutput() ApiConfigOpenapiDocumentDocumentOutput
	ToApiConfigOpenapiDocumentDocumentOutputWithContext(context.Context) ApiConfigOpenapiDocumentDocumentOutput
}

ApiConfigOpenapiDocumentDocumentInput is an input type that accepts ApiConfigOpenapiDocumentDocumentArgs and ApiConfigOpenapiDocumentDocumentOutput values. You can construct a concrete instance of `ApiConfigOpenapiDocumentDocumentInput` via:

ApiConfigOpenapiDocumentDocumentArgs{...}

type ApiConfigOpenapiDocumentDocumentOutput

type ApiConfigOpenapiDocumentDocumentOutput struct{ *pulumi.OutputState }

func (ApiConfigOpenapiDocumentDocumentOutput) Contents

Base64 encoded content of the file.

func (ApiConfigOpenapiDocumentDocumentOutput) ElementType

func (ApiConfigOpenapiDocumentDocumentOutput) Path

The file path (full or relative path). This is typically the path of the file when it is uploaded.

func (ApiConfigOpenapiDocumentDocumentOutput) ToApiConfigOpenapiDocumentDocumentOutput

func (o ApiConfigOpenapiDocumentDocumentOutput) ToApiConfigOpenapiDocumentDocumentOutput() ApiConfigOpenapiDocumentDocumentOutput

func (ApiConfigOpenapiDocumentDocumentOutput) ToApiConfigOpenapiDocumentDocumentOutputWithContext

func (o ApiConfigOpenapiDocumentDocumentOutput) ToApiConfigOpenapiDocumentDocumentOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentDocumentOutput

func (ApiConfigOpenapiDocumentDocumentOutput) ToOutput added in v6.65.1

type ApiConfigOpenapiDocumentInput

type ApiConfigOpenapiDocumentInput interface {
	pulumi.Input

	ToApiConfigOpenapiDocumentOutput() ApiConfigOpenapiDocumentOutput
	ToApiConfigOpenapiDocumentOutputWithContext(context.Context) ApiConfigOpenapiDocumentOutput
}

ApiConfigOpenapiDocumentInput is an input type that accepts ApiConfigOpenapiDocumentArgs and ApiConfigOpenapiDocumentOutput values. You can construct a concrete instance of `ApiConfigOpenapiDocumentInput` via:

ApiConfigOpenapiDocumentArgs{...}

type ApiConfigOpenapiDocumentOutput

type ApiConfigOpenapiDocumentOutput struct{ *pulumi.OutputState }

func (ApiConfigOpenapiDocumentOutput) Document

The OpenAPI Specification document file. Structure is documented below.

func (ApiConfigOpenapiDocumentOutput) ElementType

func (ApiConfigOpenapiDocumentOutput) ToApiConfigOpenapiDocumentOutput

func (o ApiConfigOpenapiDocumentOutput) ToApiConfigOpenapiDocumentOutput() ApiConfigOpenapiDocumentOutput

func (ApiConfigOpenapiDocumentOutput) ToApiConfigOpenapiDocumentOutputWithContext

func (o ApiConfigOpenapiDocumentOutput) ToApiConfigOpenapiDocumentOutputWithContext(ctx context.Context) ApiConfigOpenapiDocumentOutput

func (ApiConfigOpenapiDocumentOutput) ToOutput added in v6.65.1

type ApiConfigOutput

type ApiConfigOutput struct{ *pulumi.OutputState }

func (ApiConfigOutput) Api added in v6.23.0

The API to attach the config to.

***

func (ApiConfigOutput) ApiConfigId added in v6.23.0

func (o ApiConfigOutput) ApiConfigId() pulumi.StringOutput

Identifier to assign to the API Config. Must be unique within scope of the parent resource(api).

func (ApiConfigOutput) ApiConfigIdPrefix added in v6.23.0

func (o ApiConfigOutput) ApiConfigIdPrefix() pulumi.StringOutput

Creates a unique name beginning with the specified prefix. If this and apiConfigId are unspecified, a random value is chosen for the name.

func (ApiConfigOutput) DisplayName added in v6.23.0

func (o ApiConfigOutput) DisplayName() pulumi.StringOutput

A user-visible name for the API.

func (ApiConfigOutput) ElementType

func (ApiConfigOutput) ElementType() reflect.Type

func (ApiConfigOutput) GatewayConfig added in v6.23.0

Immutable. Gateway specific configuration. If not specified, backend authentication will be set to use OIDC authentication using the default compute service account Structure is documented below.

func (ApiConfigOutput) GrpcServices added in v6.29.0

gRPC service definition files. If specified, openapiDocuments must not be included. Structure is documented below.

func (ApiConfigOutput) Labels added in v6.23.0

Resource labels to represent user-provided metadata.

func (ApiConfigOutput) ManagedServiceConfigs added in v6.29.0

Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents. If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using "last one wins" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields. Structure is documented below.

func (ApiConfigOutput) Name added in v6.23.0

The resource name of the API Config.

func (ApiConfigOutput) OpenapiDocuments added in v6.23.0

OpenAPI specification documents. If specified, grpcServices and managedServiceConfigs must not be included. Structure is documented below.

func (ApiConfigOutput) Project added in v6.23.0

func (o ApiConfigOutput) Project() pulumi.StringOutput

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

func (ApiConfigOutput) ServiceConfigId added in v6.23.0

func (o ApiConfigOutput) ServiceConfigId() pulumi.StringOutput

The ID of the associated Service Config (https://cloud.google.com/service-infrastructure/docs/glossary#config).

func (ApiConfigOutput) ToApiConfigOutput

func (o ApiConfigOutput) ToApiConfigOutput() ApiConfigOutput

func (ApiConfigOutput) ToApiConfigOutputWithContext

func (o ApiConfigOutput) ToApiConfigOutputWithContext(ctx context.Context) ApiConfigOutput

func (ApiConfigOutput) ToOutput added in v6.65.1

type ApiConfigState

type ApiConfigState struct {
	// The API to attach the config to.
	//
	// ***
	Api pulumi.StringPtrInput
	// Identifier to assign to the API Config. Must be unique within scope of the parent resource(api).
	ApiConfigId pulumi.StringPtrInput
	// Creates a unique name beginning with the
	// specified prefix. If this and apiConfigId are unspecified, a random value is chosen for the name.
	ApiConfigIdPrefix pulumi.StringPtrInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Immutable. Gateway specific configuration.
	// If not specified, backend authentication will be set to use OIDC authentication using the default compute service account
	// Structure is documented below.
	GatewayConfig ApiConfigGatewayConfigPtrInput
	// gRPC service definition files. If specified, openapiDocuments must not be included.
	// Structure is documented below.
	GrpcServices ApiConfigGrpcServiceArrayInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents.
	// If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using "last one wins" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields.
	// Structure is documented below.
	ManagedServiceConfigs ApiConfigManagedServiceConfigArrayInput
	// The resource name of the API Config.
	Name pulumi.StringPtrInput
	// OpenAPI specification documents. If specified, grpcServices and managedServiceConfigs must not be included.
	// Structure is documented below.
	OpenapiDocuments ApiConfigOpenapiDocumentArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The ID of the associated Service Config (https://cloud.google.com/service-infrastructure/docs/glossary#config).
	ServiceConfigId pulumi.StringPtrInput
}

func (ApiConfigState) ElementType

func (ApiConfigState) ElementType() reflect.Type

type ApiIamBinding

type ApiIamBinding struct {
	pulumi.CustomResourceState

	Api       pulumi.StringOutput             `pulumi:"api"`
	Condition ApiIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	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
	// `apigateway.ApiIamBinding` 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 API Gateway Api. Each of these resources serves a different use case:

* `apigateway.ApiIamPolicy`: Authoritative. Sets the IAM policy for the api and replaces any existing policy already attached. * `apigateway.ApiIamBinding`: 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 api are preserved. * `apigateway.ApiIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the api are preserved.

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

* `apigateway.ApiIamPolicy`: Retrieves the IAM policy for the api

> **Note:** `apigateway.ApiIamPolicy` **cannot** be used in conjunction with `apigateway.ApiIamBinding` and `apigateway.ApiIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiIamPolicy(ctx, "policy", &apigateway.ApiIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_api.Api.Project),
			Api:        pulumi.Any(google_api_gateway_api.Api.Api_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamBinding(ctx, "binding", &apigateway.ApiIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamMember(ctx, "member", &apigateway.ApiIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}} * {{project}}/{{api}} * {{api}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway api 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:apigateway/apiIamBinding:ApiIamBinding editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamBinding:ApiIamBinding editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamBinding:ApiIamBinding editor projects/{{project}}/locations/global/apis/{{api}}

```

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

func GetApiIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiIamBindingState, opts ...pulumi.ResourceOption) (*ApiIamBinding, error)

GetApiIamBinding gets an existing ApiIamBinding 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 NewApiIamBinding

func NewApiIamBinding(ctx *pulumi.Context,
	name string, args *ApiIamBindingArgs, opts ...pulumi.ResourceOption) (*ApiIamBinding, error)

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

func (*ApiIamBinding) ElementType

func (*ApiIamBinding) ElementType() reflect.Type

func (*ApiIamBinding) ToApiIamBindingOutput

func (i *ApiIamBinding) ToApiIamBindingOutput() ApiIamBindingOutput

func (*ApiIamBinding) ToApiIamBindingOutputWithContext

func (i *ApiIamBinding) ToApiIamBindingOutputWithContext(ctx context.Context) ApiIamBindingOutput

func (*ApiIamBinding) ToOutput added in v6.65.1

type ApiIamBindingArgs

type ApiIamBindingArgs struct {
	Api       pulumi.StringInput
	Condition ApiIamBindingConditionPtrInput
	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
	// `apigateway.ApiIamBinding` 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 ApiIamBinding resource.

func (ApiIamBindingArgs) ElementType

func (ApiIamBindingArgs) ElementType() reflect.Type

type ApiIamBindingArray

type ApiIamBindingArray []ApiIamBindingInput

func (ApiIamBindingArray) ElementType

func (ApiIamBindingArray) ElementType() reflect.Type

func (ApiIamBindingArray) ToApiIamBindingArrayOutput

func (i ApiIamBindingArray) ToApiIamBindingArrayOutput() ApiIamBindingArrayOutput

func (ApiIamBindingArray) ToApiIamBindingArrayOutputWithContext

func (i ApiIamBindingArray) ToApiIamBindingArrayOutputWithContext(ctx context.Context) ApiIamBindingArrayOutput

func (ApiIamBindingArray) ToOutput added in v6.65.1

type ApiIamBindingArrayInput

type ApiIamBindingArrayInput interface {
	pulumi.Input

	ToApiIamBindingArrayOutput() ApiIamBindingArrayOutput
	ToApiIamBindingArrayOutputWithContext(context.Context) ApiIamBindingArrayOutput
}

ApiIamBindingArrayInput is an input type that accepts ApiIamBindingArray and ApiIamBindingArrayOutput values. You can construct a concrete instance of `ApiIamBindingArrayInput` via:

ApiIamBindingArray{ ApiIamBindingArgs{...} }

type ApiIamBindingArrayOutput

type ApiIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ApiIamBindingArrayOutput) ElementType

func (ApiIamBindingArrayOutput) ElementType() reflect.Type

func (ApiIamBindingArrayOutput) Index

func (ApiIamBindingArrayOutput) ToApiIamBindingArrayOutput

func (o ApiIamBindingArrayOutput) ToApiIamBindingArrayOutput() ApiIamBindingArrayOutput

func (ApiIamBindingArrayOutput) ToApiIamBindingArrayOutputWithContext

func (o ApiIamBindingArrayOutput) ToApiIamBindingArrayOutputWithContext(ctx context.Context) ApiIamBindingArrayOutput

func (ApiIamBindingArrayOutput) ToOutput added in v6.65.1

type ApiIamBindingCondition

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

type ApiIamBindingConditionArgs

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

func (ApiIamBindingConditionArgs) ElementType

func (ApiIamBindingConditionArgs) ElementType() reflect.Type

func (ApiIamBindingConditionArgs) ToApiIamBindingConditionOutput

func (i ApiIamBindingConditionArgs) ToApiIamBindingConditionOutput() ApiIamBindingConditionOutput

func (ApiIamBindingConditionArgs) ToApiIamBindingConditionOutputWithContext

func (i ApiIamBindingConditionArgs) ToApiIamBindingConditionOutputWithContext(ctx context.Context) ApiIamBindingConditionOutput

func (ApiIamBindingConditionArgs) ToApiIamBindingConditionPtrOutput

func (i ApiIamBindingConditionArgs) ToApiIamBindingConditionPtrOutput() ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionArgs) ToApiIamBindingConditionPtrOutputWithContext

func (i ApiIamBindingConditionArgs) ToApiIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionArgs) ToOutput added in v6.65.1

type ApiIamBindingConditionInput

type ApiIamBindingConditionInput interface {
	pulumi.Input

	ToApiIamBindingConditionOutput() ApiIamBindingConditionOutput
	ToApiIamBindingConditionOutputWithContext(context.Context) ApiIamBindingConditionOutput
}

ApiIamBindingConditionInput is an input type that accepts ApiIamBindingConditionArgs and ApiIamBindingConditionOutput values. You can construct a concrete instance of `ApiIamBindingConditionInput` via:

ApiIamBindingConditionArgs{...}

type ApiIamBindingConditionOutput

type ApiIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ApiIamBindingConditionOutput) Description

func (ApiIamBindingConditionOutput) ElementType

func (ApiIamBindingConditionOutput) Expression

func (ApiIamBindingConditionOutput) Title

func (ApiIamBindingConditionOutput) ToApiIamBindingConditionOutput

func (o ApiIamBindingConditionOutput) ToApiIamBindingConditionOutput() ApiIamBindingConditionOutput

func (ApiIamBindingConditionOutput) ToApiIamBindingConditionOutputWithContext

func (o ApiIamBindingConditionOutput) ToApiIamBindingConditionOutputWithContext(ctx context.Context) ApiIamBindingConditionOutput

func (ApiIamBindingConditionOutput) ToApiIamBindingConditionPtrOutput

func (o ApiIamBindingConditionOutput) ToApiIamBindingConditionPtrOutput() ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionOutput) ToApiIamBindingConditionPtrOutputWithContext

func (o ApiIamBindingConditionOutput) ToApiIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionOutput) ToOutput added in v6.65.1

type ApiIamBindingConditionPtrInput

type ApiIamBindingConditionPtrInput interface {
	pulumi.Input

	ToApiIamBindingConditionPtrOutput() ApiIamBindingConditionPtrOutput
	ToApiIamBindingConditionPtrOutputWithContext(context.Context) ApiIamBindingConditionPtrOutput
}

ApiIamBindingConditionPtrInput is an input type that accepts ApiIamBindingConditionArgs, ApiIamBindingConditionPtr and ApiIamBindingConditionPtrOutput values. You can construct a concrete instance of `ApiIamBindingConditionPtrInput` via:

        ApiIamBindingConditionArgs{...}

or:

        nil

type ApiIamBindingConditionPtrOutput

type ApiIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ApiIamBindingConditionPtrOutput) Description

func (ApiIamBindingConditionPtrOutput) Elem

func (ApiIamBindingConditionPtrOutput) ElementType

func (ApiIamBindingConditionPtrOutput) Expression

func (ApiIamBindingConditionPtrOutput) Title

func (ApiIamBindingConditionPtrOutput) ToApiIamBindingConditionPtrOutput

func (o ApiIamBindingConditionPtrOutput) ToApiIamBindingConditionPtrOutput() ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionPtrOutput) ToApiIamBindingConditionPtrOutputWithContext

func (o ApiIamBindingConditionPtrOutput) ToApiIamBindingConditionPtrOutputWithContext(ctx context.Context) ApiIamBindingConditionPtrOutput

func (ApiIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type ApiIamBindingInput

type ApiIamBindingInput interface {
	pulumi.Input

	ToApiIamBindingOutput() ApiIamBindingOutput
	ToApiIamBindingOutputWithContext(ctx context.Context) ApiIamBindingOutput
}

type ApiIamBindingMap

type ApiIamBindingMap map[string]ApiIamBindingInput

func (ApiIamBindingMap) ElementType

func (ApiIamBindingMap) ElementType() reflect.Type

func (ApiIamBindingMap) ToApiIamBindingMapOutput

func (i ApiIamBindingMap) ToApiIamBindingMapOutput() ApiIamBindingMapOutput

func (ApiIamBindingMap) ToApiIamBindingMapOutputWithContext

func (i ApiIamBindingMap) ToApiIamBindingMapOutputWithContext(ctx context.Context) ApiIamBindingMapOutput

func (ApiIamBindingMap) ToOutput added in v6.65.1

type ApiIamBindingMapInput

type ApiIamBindingMapInput interface {
	pulumi.Input

	ToApiIamBindingMapOutput() ApiIamBindingMapOutput
	ToApiIamBindingMapOutputWithContext(context.Context) ApiIamBindingMapOutput
}

ApiIamBindingMapInput is an input type that accepts ApiIamBindingMap and ApiIamBindingMapOutput values. You can construct a concrete instance of `ApiIamBindingMapInput` via:

ApiIamBindingMap{ "key": ApiIamBindingArgs{...} }

type ApiIamBindingMapOutput

type ApiIamBindingMapOutput struct{ *pulumi.OutputState }

func (ApiIamBindingMapOutput) ElementType

func (ApiIamBindingMapOutput) ElementType() reflect.Type

func (ApiIamBindingMapOutput) MapIndex

func (ApiIamBindingMapOutput) ToApiIamBindingMapOutput

func (o ApiIamBindingMapOutput) ToApiIamBindingMapOutput() ApiIamBindingMapOutput

func (ApiIamBindingMapOutput) ToApiIamBindingMapOutputWithContext

func (o ApiIamBindingMapOutput) ToApiIamBindingMapOutputWithContext(ctx context.Context) ApiIamBindingMapOutput

func (ApiIamBindingMapOutput) ToOutput added in v6.65.1

type ApiIamBindingOutput

type ApiIamBindingOutput struct{ *pulumi.OutputState }

func (ApiIamBindingOutput) Api added in v6.23.0

func (ApiIamBindingOutput) Condition added in v6.23.0

func (ApiIamBindingOutput) ElementType

func (ApiIamBindingOutput) ElementType() reflect.Type

func (ApiIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiIamBindingOutput) Members added in v6.23.0

func (ApiIamBindingOutput) Project added in v6.23.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 (ApiIamBindingOutput) Role added in v6.23.0

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

func (ApiIamBindingOutput) ToApiIamBindingOutput

func (o ApiIamBindingOutput) ToApiIamBindingOutput() ApiIamBindingOutput

func (ApiIamBindingOutput) ToApiIamBindingOutputWithContext

func (o ApiIamBindingOutput) ToApiIamBindingOutputWithContext(ctx context.Context) ApiIamBindingOutput

func (ApiIamBindingOutput) ToOutput added in v6.65.1

type ApiIamBindingState

type ApiIamBindingState struct {
	Api       pulumi.StringPtrInput
	Condition ApiIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    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
	// `apigateway.ApiIamBinding` 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 (ApiIamBindingState) ElementType

func (ApiIamBindingState) ElementType() reflect.Type

type ApiIamMember

type ApiIamMember struct {
	pulumi.CustomResourceState

	Api       pulumi.StringOutput            `pulumi:"api"`
	Condition ApiIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	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
	// `apigateway.ApiIamBinding` 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 API Gateway Api. Each of these resources serves a different use case:

* `apigateway.ApiIamPolicy`: Authoritative. Sets the IAM policy for the api and replaces any existing policy already attached. * `apigateway.ApiIamBinding`: 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 api are preserved. * `apigateway.ApiIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the api are preserved.

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

* `apigateway.ApiIamPolicy`: Retrieves the IAM policy for the api

> **Note:** `apigateway.ApiIamPolicy` **cannot** be used in conjunction with `apigateway.ApiIamBinding` and `apigateway.ApiIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiIamPolicy(ctx, "policy", &apigateway.ApiIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_api.Api.Project),
			Api:        pulumi.Any(google_api_gateway_api.Api.Api_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamBinding(ctx, "binding", &apigateway.ApiIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamMember(ctx, "member", &apigateway.ApiIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}} * {{project}}/{{api}} * {{api}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway api 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:apigateway/apiIamMember:ApiIamMember editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamMember:ApiIamMember editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamMember:ApiIamMember editor projects/{{project}}/locations/global/apis/{{api}}

```

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

func GetApiIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiIamMemberState, opts ...pulumi.ResourceOption) (*ApiIamMember, error)

GetApiIamMember gets an existing ApiIamMember 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 NewApiIamMember

func NewApiIamMember(ctx *pulumi.Context,
	name string, args *ApiIamMemberArgs, opts ...pulumi.ResourceOption) (*ApiIamMember, error)

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

func (*ApiIamMember) ElementType

func (*ApiIamMember) ElementType() reflect.Type

func (*ApiIamMember) ToApiIamMemberOutput

func (i *ApiIamMember) ToApiIamMemberOutput() ApiIamMemberOutput

func (*ApiIamMember) ToApiIamMemberOutputWithContext

func (i *ApiIamMember) ToApiIamMemberOutputWithContext(ctx context.Context) ApiIamMemberOutput

func (*ApiIamMember) ToOutput added in v6.65.1

type ApiIamMemberArgs

type ApiIamMemberArgs struct {
	Api       pulumi.StringInput
	Condition ApiIamMemberConditionPtrInput
	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
	// `apigateway.ApiIamBinding` 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 ApiIamMember resource.

func (ApiIamMemberArgs) ElementType

func (ApiIamMemberArgs) ElementType() reflect.Type

type ApiIamMemberArray

type ApiIamMemberArray []ApiIamMemberInput

func (ApiIamMemberArray) ElementType

func (ApiIamMemberArray) ElementType() reflect.Type

func (ApiIamMemberArray) ToApiIamMemberArrayOutput

func (i ApiIamMemberArray) ToApiIamMemberArrayOutput() ApiIamMemberArrayOutput

func (ApiIamMemberArray) ToApiIamMemberArrayOutputWithContext

func (i ApiIamMemberArray) ToApiIamMemberArrayOutputWithContext(ctx context.Context) ApiIamMemberArrayOutput

func (ApiIamMemberArray) ToOutput added in v6.65.1

type ApiIamMemberArrayInput

type ApiIamMemberArrayInput interface {
	pulumi.Input

	ToApiIamMemberArrayOutput() ApiIamMemberArrayOutput
	ToApiIamMemberArrayOutputWithContext(context.Context) ApiIamMemberArrayOutput
}

ApiIamMemberArrayInput is an input type that accepts ApiIamMemberArray and ApiIamMemberArrayOutput values. You can construct a concrete instance of `ApiIamMemberArrayInput` via:

ApiIamMemberArray{ ApiIamMemberArgs{...} }

type ApiIamMemberArrayOutput

type ApiIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ApiIamMemberArrayOutput) ElementType

func (ApiIamMemberArrayOutput) ElementType() reflect.Type

func (ApiIamMemberArrayOutput) Index

func (ApiIamMemberArrayOutput) ToApiIamMemberArrayOutput

func (o ApiIamMemberArrayOutput) ToApiIamMemberArrayOutput() ApiIamMemberArrayOutput

func (ApiIamMemberArrayOutput) ToApiIamMemberArrayOutputWithContext

func (o ApiIamMemberArrayOutput) ToApiIamMemberArrayOutputWithContext(ctx context.Context) ApiIamMemberArrayOutput

func (ApiIamMemberArrayOutput) ToOutput added in v6.65.1

type ApiIamMemberCondition

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

type ApiIamMemberConditionArgs

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

func (ApiIamMemberConditionArgs) ElementType

func (ApiIamMemberConditionArgs) ElementType() reflect.Type

func (ApiIamMemberConditionArgs) ToApiIamMemberConditionOutput

func (i ApiIamMemberConditionArgs) ToApiIamMemberConditionOutput() ApiIamMemberConditionOutput

func (ApiIamMemberConditionArgs) ToApiIamMemberConditionOutputWithContext

func (i ApiIamMemberConditionArgs) ToApiIamMemberConditionOutputWithContext(ctx context.Context) ApiIamMemberConditionOutput

func (ApiIamMemberConditionArgs) ToApiIamMemberConditionPtrOutput

func (i ApiIamMemberConditionArgs) ToApiIamMemberConditionPtrOutput() ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionArgs) ToApiIamMemberConditionPtrOutputWithContext

func (i ApiIamMemberConditionArgs) ToApiIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionArgs) ToOutput added in v6.65.1

type ApiIamMemberConditionInput

type ApiIamMemberConditionInput interface {
	pulumi.Input

	ToApiIamMemberConditionOutput() ApiIamMemberConditionOutput
	ToApiIamMemberConditionOutputWithContext(context.Context) ApiIamMemberConditionOutput
}

ApiIamMemberConditionInput is an input type that accepts ApiIamMemberConditionArgs and ApiIamMemberConditionOutput values. You can construct a concrete instance of `ApiIamMemberConditionInput` via:

ApiIamMemberConditionArgs{...}

type ApiIamMemberConditionOutput

type ApiIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ApiIamMemberConditionOutput) Description

func (ApiIamMemberConditionOutput) ElementType

func (ApiIamMemberConditionOutput) Expression

func (ApiIamMemberConditionOutput) Title

func (ApiIamMemberConditionOutput) ToApiIamMemberConditionOutput

func (o ApiIamMemberConditionOutput) ToApiIamMemberConditionOutput() ApiIamMemberConditionOutput

func (ApiIamMemberConditionOutput) ToApiIamMemberConditionOutputWithContext

func (o ApiIamMemberConditionOutput) ToApiIamMemberConditionOutputWithContext(ctx context.Context) ApiIamMemberConditionOutput

func (ApiIamMemberConditionOutput) ToApiIamMemberConditionPtrOutput

func (o ApiIamMemberConditionOutput) ToApiIamMemberConditionPtrOutput() ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionOutput) ToApiIamMemberConditionPtrOutputWithContext

func (o ApiIamMemberConditionOutput) ToApiIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionOutput) ToOutput added in v6.65.1

type ApiIamMemberConditionPtrInput

type ApiIamMemberConditionPtrInput interface {
	pulumi.Input

	ToApiIamMemberConditionPtrOutput() ApiIamMemberConditionPtrOutput
	ToApiIamMemberConditionPtrOutputWithContext(context.Context) ApiIamMemberConditionPtrOutput
}

ApiIamMemberConditionPtrInput is an input type that accepts ApiIamMemberConditionArgs, ApiIamMemberConditionPtr and ApiIamMemberConditionPtrOutput values. You can construct a concrete instance of `ApiIamMemberConditionPtrInput` via:

        ApiIamMemberConditionArgs{...}

or:

        nil

type ApiIamMemberConditionPtrOutput

type ApiIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ApiIamMemberConditionPtrOutput) Description

func (ApiIamMemberConditionPtrOutput) Elem

func (ApiIamMemberConditionPtrOutput) ElementType

func (ApiIamMemberConditionPtrOutput) Expression

func (ApiIamMemberConditionPtrOutput) Title

func (ApiIamMemberConditionPtrOutput) ToApiIamMemberConditionPtrOutput

func (o ApiIamMemberConditionPtrOutput) ToApiIamMemberConditionPtrOutput() ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionPtrOutput) ToApiIamMemberConditionPtrOutputWithContext

func (o ApiIamMemberConditionPtrOutput) ToApiIamMemberConditionPtrOutputWithContext(ctx context.Context) ApiIamMemberConditionPtrOutput

func (ApiIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type ApiIamMemberInput

type ApiIamMemberInput interface {
	pulumi.Input

	ToApiIamMemberOutput() ApiIamMemberOutput
	ToApiIamMemberOutputWithContext(ctx context.Context) ApiIamMemberOutput
}

type ApiIamMemberMap

type ApiIamMemberMap map[string]ApiIamMemberInput

func (ApiIamMemberMap) ElementType

func (ApiIamMemberMap) ElementType() reflect.Type

func (ApiIamMemberMap) ToApiIamMemberMapOutput

func (i ApiIamMemberMap) ToApiIamMemberMapOutput() ApiIamMemberMapOutput

func (ApiIamMemberMap) ToApiIamMemberMapOutputWithContext

func (i ApiIamMemberMap) ToApiIamMemberMapOutputWithContext(ctx context.Context) ApiIamMemberMapOutput

func (ApiIamMemberMap) ToOutput added in v6.65.1

type ApiIamMemberMapInput

type ApiIamMemberMapInput interface {
	pulumi.Input

	ToApiIamMemberMapOutput() ApiIamMemberMapOutput
	ToApiIamMemberMapOutputWithContext(context.Context) ApiIamMemberMapOutput
}

ApiIamMemberMapInput is an input type that accepts ApiIamMemberMap and ApiIamMemberMapOutput values. You can construct a concrete instance of `ApiIamMemberMapInput` via:

ApiIamMemberMap{ "key": ApiIamMemberArgs{...} }

type ApiIamMemberMapOutput

type ApiIamMemberMapOutput struct{ *pulumi.OutputState }

func (ApiIamMemberMapOutput) ElementType

func (ApiIamMemberMapOutput) ElementType() reflect.Type

func (ApiIamMemberMapOutput) MapIndex

func (ApiIamMemberMapOutput) ToApiIamMemberMapOutput

func (o ApiIamMemberMapOutput) ToApiIamMemberMapOutput() ApiIamMemberMapOutput

func (ApiIamMemberMapOutput) ToApiIamMemberMapOutputWithContext

func (o ApiIamMemberMapOutput) ToApiIamMemberMapOutputWithContext(ctx context.Context) ApiIamMemberMapOutput

func (ApiIamMemberMapOutput) ToOutput added in v6.65.1

type ApiIamMemberOutput

type ApiIamMemberOutput struct{ *pulumi.OutputState }

func (ApiIamMemberOutput) Api added in v6.23.0

func (ApiIamMemberOutput) Condition added in v6.23.0

func (ApiIamMemberOutput) ElementType

func (ApiIamMemberOutput) ElementType() reflect.Type

func (ApiIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiIamMemberOutput) Member added in v6.23.0

func (ApiIamMemberOutput) Project added in v6.23.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 (ApiIamMemberOutput) Role added in v6.23.0

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

func (ApiIamMemberOutput) ToApiIamMemberOutput

func (o ApiIamMemberOutput) ToApiIamMemberOutput() ApiIamMemberOutput

func (ApiIamMemberOutput) ToApiIamMemberOutputWithContext

func (o ApiIamMemberOutput) ToApiIamMemberOutputWithContext(ctx context.Context) ApiIamMemberOutput

func (ApiIamMemberOutput) ToOutput added in v6.65.1

type ApiIamMemberState

type ApiIamMemberState struct {
	Api       pulumi.StringPtrInput
	Condition ApiIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   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
	// `apigateway.ApiIamBinding` 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 (ApiIamMemberState) ElementType

func (ApiIamMemberState) ElementType() reflect.Type

type ApiIamPolicy

type ApiIamPolicy struct {
	pulumi.CustomResourceState

	Api pulumi.StringOutput `pulumi:"api"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// 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 API Gateway Api. Each of these resources serves a different use case:

* `apigateway.ApiIamPolicy`: Authoritative. Sets the IAM policy for the api and replaces any existing policy already attached. * `apigateway.ApiIamBinding`: 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 api are preserved. * `apigateway.ApiIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the api are preserved.

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

* `apigateway.ApiIamPolicy`: Retrieves the IAM policy for the api

> **Note:** `apigateway.ApiIamPolicy` **cannot** be used in conjunction with `apigateway.ApiIamBinding` and `apigateway.ApiIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_api\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewApiIamPolicy(ctx, "policy", &apigateway.ApiIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_api.Api.Project),
			Api:        pulumi.Any(google_api_gateway_api.Api.Api_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamBinding(ctx, "binding", &apigateway.ApiIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_api\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiIamMember(ctx, "member", &apigateway.ApiIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_api.Api.Project),
			Api:     pulumi.Any(google_api_gateway_api.Api.Api_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/global/apis/{{api}} * {{project}}/{{api}} * {{api}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway api 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:apigateway/apiIamPolicy:ApiIamPolicy editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamPolicy:ApiIamPolicy editor "projects/{{project}}/locations/global/apis/{{api}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/apiIamPolicy:ApiIamPolicy editor projects/{{project}}/locations/global/apis/{{api}}

```

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

func GetApiIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiIamPolicyState, opts ...pulumi.ResourceOption) (*ApiIamPolicy, error)

GetApiIamPolicy gets an existing ApiIamPolicy 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 NewApiIamPolicy

func NewApiIamPolicy(ctx *pulumi.Context,
	name string, args *ApiIamPolicyArgs, opts ...pulumi.ResourceOption) (*ApiIamPolicy, error)

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

func (*ApiIamPolicy) ElementType

func (*ApiIamPolicy) ElementType() reflect.Type

func (*ApiIamPolicy) ToApiIamPolicyOutput

func (i *ApiIamPolicy) ToApiIamPolicyOutput() ApiIamPolicyOutput

func (*ApiIamPolicy) ToApiIamPolicyOutputWithContext

func (i *ApiIamPolicy) ToApiIamPolicyOutputWithContext(ctx context.Context) ApiIamPolicyOutput

func (*ApiIamPolicy) ToOutput added in v6.65.1

type ApiIamPolicyArgs

type ApiIamPolicyArgs struct {
	Api pulumi.StringInput
	// 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 ApiIamPolicy resource.

func (ApiIamPolicyArgs) ElementType

func (ApiIamPolicyArgs) ElementType() reflect.Type

type ApiIamPolicyArray

type ApiIamPolicyArray []ApiIamPolicyInput

func (ApiIamPolicyArray) ElementType

func (ApiIamPolicyArray) ElementType() reflect.Type

func (ApiIamPolicyArray) ToApiIamPolicyArrayOutput

func (i ApiIamPolicyArray) ToApiIamPolicyArrayOutput() ApiIamPolicyArrayOutput

func (ApiIamPolicyArray) ToApiIamPolicyArrayOutputWithContext

func (i ApiIamPolicyArray) ToApiIamPolicyArrayOutputWithContext(ctx context.Context) ApiIamPolicyArrayOutput

func (ApiIamPolicyArray) ToOutput added in v6.65.1

type ApiIamPolicyArrayInput

type ApiIamPolicyArrayInput interface {
	pulumi.Input

	ToApiIamPolicyArrayOutput() ApiIamPolicyArrayOutput
	ToApiIamPolicyArrayOutputWithContext(context.Context) ApiIamPolicyArrayOutput
}

ApiIamPolicyArrayInput is an input type that accepts ApiIamPolicyArray and ApiIamPolicyArrayOutput values. You can construct a concrete instance of `ApiIamPolicyArrayInput` via:

ApiIamPolicyArray{ ApiIamPolicyArgs{...} }

type ApiIamPolicyArrayOutput

type ApiIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ApiIamPolicyArrayOutput) ElementType

func (ApiIamPolicyArrayOutput) ElementType() reflect.Type

func (ApiIamPolicyArrayOutput) Index

func (ApiIamPolicyArrayOutput) ToApiIamPolicyArrayOutput

func (o ApiIamPolicyArrayOutput) ToApiIamPolicyArrayOutput() ApiIamPolicyArrayOutput

func (ApiIamPolicyArrayOutput) ToApiIamPolicyArrayOutputWithContext

func (o ApiIamPolicyArrayOutput) ToApiIamPolicyArrayOutputWithContext(ctx context.Context) ApiIamPolicyArrayOutput

func (ApiIamPolicyArrayOutput) ToOutput added in v6.65.1

type ApiIamPolicyInput

type ApiIamPolicyInput interface {
	pulumi.Input

	ToApiIamPolicyOutput() ApiIamPolicyOutput
	ToApiIamPolicyOutputWithContext(ctx context.Context) ApiIamPolicyOutput
}

type ApiIamPolicyMap

type ApiIamPolicyMap map[string]ApiIamPolicyInput

func (ApiIamPolicyMap) ElementType

func (ApiIamPolicyMap) ElementType() reflect.Type

func (ApiIamPolicyMap) ToApiIamPolicyMapOutput

func (i ApiIamPolicyMap) ToApiIamPolicyMapOutput() ApiIamPolicyMapOutput

func (ApiIamPolicyMap) ToApiIamPolicyMapOutputWithContext

func (i ApiIamPolicyMap) ToApiIamPolicyMapOutputWithContext(ctx context.Context) ApiIamPolicyMapOutput

func (ApiIamPolicyMap) ToOutput added in v6.65.1

type ApiIamPolicyMapInput

type ApiIamPolicyMapInput interface {
	pulumi.Input

	ToApiIamPolicyMapOutput() ApiIamPolicyMapOutput
	ToApiIamPolicyMapOutputWithContext(context.Context) ApiIamPolicyMapOutput
}

ApiIamPolicyMapInput is an input type that accepts ApiIamPolicyMap and ApiIamPolicyMapOutput values. You can construct a concrete instance of `ApiIamPolicyMapInput` via:

ApiIamPolicyMap{ "key": ApiIamPolicyArgs{...} }

type ApiIamPolicyMapOutput

type ApiIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ApiIamPolicyMapOutput) ElementType

func (ApiIamPolicyMapOutput) ElementType() reflect.Type

func (ApiIamPolicyMapOutput) MapIndex

func (ApiIamPolicyMapOutput) ToApiIamPolicyMapOutput

func (o ApiIamPolicyMapOutput) ToApiIamPolicyMapOutput() ApiIamPolicyMapOutput

func (ApiIamPolicyMapOutput) ToApiIamPolicyMapOutputWithContext

func (o ApiIamPolicyMapOutput) ToApiIamPolicyMapOutputWithContext(ctx context.Context) ApiIamPolicyMapOutput

func (ApiIamPolicyMapOutput) ToOutput added in v6.65.1

type ApiIamPolicyOutput

type ApiIamPolicyOutput struct{ *pulumi.OutputState }

func (ApiIamPolicyOutput) Api added in v6.23.0

func (ApiIamPolicyOutput) ElementType

func (ApiIamPolicyOutput) ElementType() reflect.Type

func (ApiIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (ApiIamPolicyOutput) PolicyData added in v6.23.0

func (o ApiIamPolicyOutput) PolicyData() pulumi.StringOutput

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

func (ApiIamPolicyOutput) Project added in v6.23.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 (ApiIamPolicyOutput) ToApiIamPolicyOutput

func (o ApiIamPolicyOutput) ToApiIamPolicyOutput() ApiIamPolicyOutput

func (ApiIamPolicyOutput) ToApiIamPolicyOutputWithContext

func (o ApiIamPolicyOutput) ToApiIamPolicyOutputWithContext(ctx context.Context) ApiIamPolicyOutput

func (ApiIamPolicyOutput) ToOutput added in v6.65.1

type ApiIamPolicyState

type ApiIamPolicyState struct {
	Api pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// 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 (ApiIamPolicyState) ElementType

func (ApiIamPolicyState) ElementType() reflect.Type

type ApiInput

type ApiInput interface {
	pulumi.Input

	ToApiOutput() ApiOutput
	ToApiOutputWithContext(ctx context.Context) ApiOutput
}

type ApiMap

type ApiMap map[string]ApiInput

func (ApiMap) ElementType

func (ApiMap) ElementType() reflect.Type

func (ApiMap) ToApiMapOutput

func (i ApiMap) ToApiMapOutput() ApiMapOutput

func (ApiMap) ToApiMapOutputWithContext

func (i ApiMap) ToApiMapOutputWithContext(ctx context.Context) ApiMapOutput

func (ApiMap) ToOutput added in v6.65.1

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

type ApiMapInput

type ApiMapInput interface {
	pulumi.Input

	ToApiMapOutput() ApiMapOutput
	ToApiMapOutputWithContext(context.Context) ApiMapOutput
}

ApiMapInput is an input type that accepts ApiMap and ApiMapOutput values. You can construct a concrete instance of `ApiMapInput` via:

ApiMap{ "key": ApiArgs{...} }

type ApiMapOutput

type ApiMapOutput struct{ *pulumi.OutputState }

func (ApiMapOutput) ElementType

func (ApiMapOutput) ElementType() reflect.Type

func (ApiMapOutput) MapIndex

func (o ApiMapOutput) MapIndex(k pulumi.StringInput) ApiOutput

func (ApiMapOutput) ToApiMapOutput

func (o ApiMapOutput) ToApiMapOutput() ApiMapOutput

func (ApiMapOutput) ToApiMapOutputWithContext

func (o ApiMapOutput) ToApiMapOutputWithContext(ctx context.Context) ApiMapOutput

func (ApiMapOutput) ToOutput added in v6.65.1

func (o ApiMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Api]

type ApiOutput

type ApiOutput struct{ *pulumi.OutputState }

func (ApiOutput) ApiId added in v6.23.0

func (o ApiOutput) ApiId() pulumi.StringOutput

Identifier to assign to the API. Must be unique within scope of the parent resource(project)

***

func (ApiOutput) CreateTime added in v6.23.0

func (o ApiOutput) CreateTime() pulumi.StringOutput

Creation timestamp in RFC3339 text format.

func (ApiOutput) DisplayName added in v6.23.0

func (o ApiOutput) DisplayName() pulumi.StringOutput

A user-visible name for the API.

func (ApiOutput) ElementType

func (ApiOutput) ElementType() reflect.Type

func (ApiOutput) Labels added in v6.23.0

func (o ApiOutput) Labels() pulumi.StringMapOutput

Resource labels to represent user-provided metadata.

func (ApiOutput) ManagedService added in v6.23.0

func (o ApiOutput) ManagedService() pulumi.StringOutput

Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed). If not specified, a new Service will automatically be created in the same project as this API.

func (ApiOutput) Name added in v6.23.0

func (o ApiOutput) Name() pulumi.StringOutput

The resource name of the API. Format `projects/{{project}}/locations/global/apis/{{apiId}}`

func (ApiOutput) Project added in v6.23.0

func (o ApiOutput) Project() pulumi.StringOutput

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

func (ApiOutput) ToApiOutput

func (o ApiOutput) ToApiOutput() ApiOutput

func (ApiOutput) ToApiOutputWithContext

func (o ApiOutput) ToApiOutputWithContext(ctx context.Context) ApiOutput

func (ApiOutput) ToOutput added in v6.65.1

func (o ApiOutput) ToOutput(ctx context.Context) pulumix.Output[*Api]

type ApiState

type ApiState struct {
	// Identifier to assign to the API. Must be unique within scope of the parent resource(project)
	//
	// ***
	ApiId pulumi.StringPtrInput
	// Creation timestamp in RFC3339 text format.
	CreateTime pulumi.StringPtrInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed).
	// If not specified, a new Service will automatically be created in the same project as this API.
	ManagedService pulumi.StringPtrInput
	// The resource name of the API. Format `projects/{{project}}/locations/global/apis/{{apiId}}`
	Name 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 (ApiState) ElementType

func (ApiState) ElementType() reflect.Type

type Gateway

type Gateway struct {
	pulumi.CustomResourceState

	// Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}.
	// When changing api configs please ensure the new config is a new resource and the lifecycle rule `createBeforeDestroy` is set.
	ApiConfig pulumi.StringOutput `pulumi:"apiConfig"`
	// The default API Gateway host name of the form {gatewayId}-{hash}.{region_code}.gateway.dev.
	DefaultHostname pulumi.StringOutput `pulumi:"defaultHostname"`
	// A user-visible name for the API.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Identifier to assign to the Gateway. Must be unique within scope of the parent resource(project).
	//
	// ***
	GatewayId pulumi.StringOutput `pulumi:"gatewayId"`
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Resource name of the Gateway. Format: projects/{project}/locations/{region}/gateways/{gateway}
	Name pulumi.StringOutput `pulumi:"name"`
	// 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"`
	// The region of the gateway for the API.
	Region pulumi.StringOutput `pulumi:"region"`
}

A consumable API that can be used by multiple Gateways.

To get more information about Gateway, see:

* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis) * How-to Guides

## Example Usage ### Apigateway Gateway Basic

```go package main

import (

"encoding/base64"
"os"

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

)

func filebase64OrPanic(path string) pulumi.StringPtrInput {
	if fileData, err := os.ReadFile(path); err == nil {
		return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))
	} else {
		panic(err.Error())
	}
}

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		apiGwApi, err := apigateway.NewApi(ctx, "apiGwApi", &apigateway.ApiArgs{
			ApiId: pulumi.String("my-api"),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		apiGwApiConfig, err := apigateway.NewApiConfig(ctx, "apiGwApiConfig", &apigateway.ApiConfigArgs{
			Api:         apiGwApi.ApiId,
			ApiConfigId: pulumi.String("my-config"),
			OpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{
				&apigateway.ApiConfigOpenapiDocumentArgs{
					Document: &apigateway.ApiConfigOpenapiDocumentDocumentArgs{
						Path:     pulumi.String("spec.yaml"),
						Contents: filebase64OrPanic("test-fixtures/openapi.yaml"),
					},
				},
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		_, err = apigateway.NewGateway(ctx, "apiGwGateway", &apigateway.GatewayArgs{
			ApiConfig: apiGwApiConfig.ID(),
			GatewayId: pulumi.String("my-gateway"),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Gateway can be imported using any of these accepted formats

```sh

$ pulumi import gcp:apigateway/gateway:Gateway default projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}

```

```sh

$ pulumi import gcp:apigateway/gateway:Gateway default {{project}}/{{region}}/{{gateway_id}}

```

```sh

$ pulumi import gcp:apigateway/gateway:Gateway default {{region}}/{{gateway_id}}

```

```sh

$ pulumi import gcp:apigateway/gateway:Gateway default {{gateway_id}}

```

func GetGateway

func GetGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayState, opts ...pulumi.ResourceOption) (*Gateway, error)

GetGateway gets an existing Gateway 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 NewGateway

func NewGateway(ctx *pulumi.Context,
	name string, args *GatewayArgs, opts ...pulumi.ResourceOption) (*Gateway, error)

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

func (*Gateway) ElementType

func (*Gateway) ElementType() reflect.Type

func (*Gateway) ToGatewayOutput

func (i *Gateway) ToGatewayOutput() GatewayOutput

func (*Gateway) ToGatewayOutputWithContext

func (i *Gateway) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

func (*Gateway) ToOutput added in v6.65.1

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

type GatewayArgs

type GatewayArgs struct {
	// Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}.
	// When changing api configs please ensure the new config is a new resource and the lifecycle rule `createBeforeDestroy` is set.
	ApiConfig pulumi.StringInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Identifier to assign to the Gateway. Must be unique within scope of the parent resource(project).
	//
	// ***
	GatewayId pulumi.StringInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the gateway for the API.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a Gateway resource.

func (GatewayArgs) ElementType

func (GatewayArgs) ElementType() reflect.Type

type GatewayArray

type GatewayArray []GatewayInput

func (GatewayArray) ElementType

func (GatewayArray) ElementType() reflect.Type

func (GatewayArray) ToGatewayArrayOutput

func (i GatewayArray) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArray) ToGatewayArrayOutputWithContext

func (i GatewayArray) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

func (GatewayArray) ToOutput added in v6.65.1

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

type GatewayArrayInput

type GatewayArrayInput interface {
	pulumi.Input

	ToGatewayArrayOutput() GatewayArrayOutput
	ToGatewayArrayOutputWithContext(context.Context) GatewayArrayOutput
}

GatewayArrayInput is an input type that accepts GatewayArray and GatewayArrayOutput values. You can construct a concrete instance of `GatewayArrayInput` via:

GatewayArray{ GatewayArgs{...} }

type GatewayArrayOutput

type GatewayArrayOutput struct{ *pulumi.OutputState }

func (GatewayArrayOutput) ElementType

func (GatewayArrayOutput) ElementType() reflect.Type

func (GatewayArrayOutput) Index

func (GatewayArrayOutput) ToGatewayArrayOutput

func (o GatewayArrayOutput) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArrayOutput) ToGatewayArrayOutputWithContext

func (o GatewayArrayOutput) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

func (GatewayArrayOutput) ToOutput added in v6.65.1

type GatewayIamBinding

type GatewayIamBinding struct {
	pulumi.CustomResourceState

	Condition GatewayIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Gateway pulumi.StringOutput      `pulumi:"gateway"`
	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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 API Gateway Gateway. Each of these resources serves a different use case:

* `apigateway.GatewayIamPolicy`: Authoritative. Sets the IAM policy for the gateway and replaces any existing policy already attached. * `apigateway.GatewayIamBinding`: 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 gateway are preserved. * `apigateway.GatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the gateway are preserved.

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

* `apigateway.GatewayIamPolicy`: Retrieves the IAM policy for the gateway

> **Note:** `apigateway.GatewayIamPolicy` **cannot** be used in conjunction with `apigateway.GatewayIamBinding` and `apigateway.GatewayIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_gateway\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewGatewayIamPolicy(ctx, "policy", &apigateway.GatewayIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:     pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway:    pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamBinding(ctx, "binding", &apigateway.GatewayIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamMember(ctx, "member", &apigateway.GatewayIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/{{region}}/gateways/{{gateway}} * {{project}}/{{region}}/{{gateway}} * {{region}}/{{gateway}} * {{gateway}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway gateway 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:apigateway/gatewayIamBinding:GatewayIamBinding editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamBinding:GatewayIamBinding editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamBinding:GatewayIamBinding editor projects/{{project}}/locations/{{region}}/gateways/{{gateway}}

```

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

func GetGatewayIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayIamBindingState, opts ...pulumi.ResourceOption) (*GatewayIamBinding, error)

GetGatewayIamBinding gets an existing GatewayIamBinding 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 NewGatewayIamBinding

func NewGatewayIamBinding(ctx *pulumi.Context,
	name string, args *GatewayIamBindingArgs, opts ...pulumi.ResourceOption) (*GatewayIamBinding, error)

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

func (*GatewayIamBinding) ElementType

func (*GatewayIamBinding) ElementType() reflect.Type

func (*GatewayIamBinding) ToGatewayIamBindingOutput

func (i *GatewayIamBinding) ToGatewayIamBindingOutput() GatewayIamBindingOutput

func (*GatewayIamBinding) ToGatewayIamBindingOutputWithContext

func (i *GatewayIamBinding) ToGatewayIamBindingOutputWithContext(ctx context.Context) GatewayIamBindingOutput

func (*GatewayIamBinding) ToOutput added in v6.65.1

type GatewayIamBindingArgs

type GatewayIamBindingArgs struct {
	Condition GatewayIamBindingConditionPtrInput
	Gateway   pulumi.StringInput
	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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 GatewayIamBinding resource.

func (GatewayIamBindingArgs) ElementType

func (GatewayIamBindingArgs) ElementType() reflect.Type

type GatewayIamBindingArray

type GatewayIamBindingArray []GatewayIamBindingInput

func (GatewayIamBindingArray) ElementType

func (GatewayIamBindingArray) ElementType() reflect.Type

func (GatewayIamBindingArray) ToGatewayIamBindingArrayOutput

func (i GatewayIamBindingArray) ToGatewayIamBindingArrayOutput() GatewayIamBindingArrayOutput

func (GatewayIamBindingArray) ToGatewayIamBindingArrayOutputWithContext

func (i GatewayIamBindingArray) ToGatewayIamBindingArrayOutputWithContext(ctx context.Context) GatewayIamBindingArrayOutput

func (GatewayIamBindingArray) ToOutput added in v6.65.1

type GatewayIamBindingArrayInput

type GatewayIamBindingArrayInput interface {
	pulumi.Input

	ToGatewayIamBindingArrayOutput() GatewayIamBindingArrayOutput
	ToGatewayIamBindingArrayOutputWithContext(context.Context) GatewayIamBindingArrayOutput
}

GatewayIamBindingArrayInput is an input type that accepts GatewayIamBindingArray and GatewayIamBindingArrayOutput values. You can construct a concrete instance of `GatewayIamBindingArrayInput` via:

GatewayIamBindingArray{ GatewayIamBindingArgs{...} }

type GatewayIamBindingArrayOutput

type GatewayIamBindingArrayOutput struct{ *pulumi.OutputState }

func (GatewayIamBindingArrayOutput) ElementType

func (GatewayIamBindingArrayOutput) Index

func (GatewayIamBindingArrayOutput) ToGatewayIamBindingArrayOutput

func (o GatewayIamBindingArrayOutput) ToGatewayIamBindingArrayOutput() GatewayIamBindingArrayOutput

func (GatewayIamBindingArrayOutput) ToGatewayIamBindingArrayOutputWithContext

func (o GatewayIamBindingArrayOutput) ToGatewayIamBindingArrayOutputWithContext(ctx context.Context) GatewayIamBindingArrayOutput

func (GatewayIamBindingArrayOutput) ToOutput added in v6.65.1

type GatewayIamBindingCondition

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

type GatewayIamBindingConditionArgs

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

func (GatewayIamBindingConditionArgs) ElementType

func (GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionOutput

func (i GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionOutput() GatewayIamBindingConditionOutput

func (GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionOutputWithContext

func (i GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionOutputWithContext(ctx context.Context) GatewayIamBindingConditionOutput

func (GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionPtrOutput

func (i GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionPtrOutput() GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionPtrOutputWithContext

func (i GatewayIamBindingConditionArgs) ToGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionArgs) ToOutput added in v6.65.1

type GatewayIamBindingConditionInput

type GatewayIamBindingConditionInput interface {
	pulumi.Input

	ToGatewayIamBindingConditionOutput() GatewayIamBindingConditionOutput
	ToGatewayIamBindingConditionOutputWithContext(context.Context) GatewayIamBindingConditionOutput
}

GatewayIamBindingConditionInput is an input type that accepts GatewayIamBindingConditionArgs and GatewayIamBindingConditionOutput values. You can construct a concrete instance of `GatewayIamBindingConditionInput` via:

GatewayIamBindingConditionArgs{...}

type GatewayIamBindingConditionOutput

type GatewayIamBindingConditionOutput struct{ *pulumi.OutputState }

func (GatewayIamBindingConditionOutput) Description

func (GatewayIamBindingConditionOutput) ElementType

func (GatewayIamBindingConditionOutput) Expression

func (GatewayIamBindingConditionOutput) Title

func (GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionOutput

func (o GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionOutput() GatewayIamBindingConditionOutput

func (GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionOutputWithContext

func (o GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionOutputWithContext(ctx context.Context) GatewayIamBindingConditionOutput

func (GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionPtrOutput

func (o GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionPtrOutput() GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionPtrOutputWithContext

func (o GatewayIamBindingConditionOutput) ToGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionOutput) ToOutput added in v6.65.1

type GatewayIamBindingConditionPtrInput

type GatewayIamBindingConditionPtrInput interface {
	pulumi.Input

	ToGatewayIamBindingConditionPtrOutput() GatewayIamBindingConditionPtrOutput
	ToGatewayIamBindingConditionPtrOutputWithContext(context.Context) GatewayIamBindingConditionPtrOutput
}

GatewayIamBindingConditionPtrInput is an input type that accepts GatewayIamBindingConditionArgs, GatewayIamBindingConditionPtr and GatewayIamBindingConditionPtrOutput values. You can construct a concrete instance of `GatewayIamBindingConditionPtrInput` via:

        GatewayIamBindingConditionArgs{...}

or:

        nil

type GatewayIamBindingConditionPtrOutput

type GatewayIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (GatewayIamBindingConditionPtrOutput) Description

func (GatewayIamBindingConditionPtrOutput) Elem

func (GatewayIamBindingConditionPtrOutput) ElementType

func (GatewayIamBindingConditionPtrOutput) Expression

func (GatewayIamBindingConditionPtrOutput) Title

func (GatewayIamBindingConditionPtrOutput) ToGatewayIamBindingConditionPtrOutput

func (o GatewayIamBindingConditionPtrOutput) ToGatewayIamBindingConditionPtrOutput() GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionPtrOutput) ToGatewayIamBindingConditionPtrOutputWithContext

func (o GatewayIamBindingConditionPtrOutput) ToGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) GatewayIamBindingConditionPtrOutput

func (GatewayIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type GatewayIamBindingInput

type GatewayIamBindingInput interface {
	pulumi.Input

	ToGatewayIamBindingOutput() GatewayIamBindingOutput
	ToGatewayIamBindingOutputWithContext(ctx context.Context) GatewayIamBindingOutput
}

type GatewayIamBindingMap

type GatewayIamBindingMap map[string]GatewayIamBindingInput

func (GatewayIamBindingMap) ElementType

func (GatewayIamBindingMap) ElementType() reflect.Type

func (GatewayIamBindingMap) ToGatewayIamBindingMapOutput

func (i GatewayIamBindingMap) ToGatewayIamBindingMapOutput() GatewayIamBindingMapOutput

func (GatewayIamBindingMap) ToGatewayIamBindingMapOutputWithContext

func (i GatewayIamBindingMap) ToGatewayIamBindingMapOutputWithContext(ctx context.Context) GatewayIamBindingMapOutput

func (GatewayIamBindingMap) ToOutput added in v6.65.1

type GatewayIamBindingMapInput

type GatewayIamBindingMapInput interface {
	pulumi.Input

	ToGatewayIamBindingMapOutput() GatewayIamBindingMapOutput
	ToGatewayIamBindingMapOutputWithContext(context.Context) GatewayIamBindingMapOutput
}

GatewayIamBindingMapInput is an input type that accepts GatewayIamBindingMap and GatewayIamBindingMapOutput values. You can construct a concrete instance of `GatewayIamBindingMapInput` via:

GatewayIamBindingMap{ "key": GatewayIamBindingArgs{...} }

type GatewayIamBindingMapOutput

type GatewayIamBindingMapOutput struct{ *pulumi.OutputState }

func (GatewayIamBindingMapOutput) ElementType

func (GatewayIamBindingMapOutput) ElementType() reflect.Type

func (GatewayIamBindingMapOutput) MapIndex

func (GatewayIamBindingMapOutput) ToGatewayIamBindingMapOutput

func (o GatewayIamBindingMapOutput) ToGatewayIamBindingMapOutput() GatewayIamBindingMapOutput

func (GatewayIamBindingMapOutput) ToGatewayIamBindingMapOutputWithContext

func (o GatewayIamBindingMapOutput) ToGatewayIamBindingMapOutputWithContext(ctx context.Context) GatewayIamBindingMapOutput

func (GatewayIamBindingMapOutput) ToOutput added in v6.65.1

type GatewayIamBindingOutput

type GatewayIamBindingOutput struct{ *pulumi.OutputState }

func (GatewayIamBindingOutput) Condition added in v6.23.0

func (GatewayIamBindingOutput) ElementType

func (GatewayIamBindingOutput) ElementType() reflect.Type

func (GatewayIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (GatewayIamBindingOutput) Gateway added in v6.23.0

func (GatewayIamBindingOutput) Members added in v6.23.0

func (GatewayIamBindingOutput) Project added in v6.23.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 (GatewayIamBindingOutput) Region added in v6.23.0

The region of the gateway for the API. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no region is specified, it is taken from the provider configuration.

func (GatewayIamBindingOutput) Role added in v6.23.0

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

func (GatewayIamBindingOutput) ToGatewayIamBindingOutput

func (o GatewayIamBindingOutput) ToGatewayIamBindingOutput() GatewayIamBindingOutput

func (GatewayIamBindingOutput) ToGatewayIamBindingOutputWithContext

func (o GatewayIamBindingOutput) ToGatewayIamBindingOutputWithContext(ctx context.Context) GatewayIamBindingOutput

func (GatewayIamBindingOutput) ToOutput added in v6.65.1

type GatewayIamBindingState

type GatewayIamBindingState struct {
	Condition GatewayIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Gateway 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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 (GatewayIamBindingState) ElementType

func (GatewayIamBindingState) ElementType() reflect.Type

type GatewayIamMember

type GatewayIamMember struct {
	pulumi.CustomResourceState

	Condition GatewayIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput `pulumi:"etag"`
	Gateway pulumi.StringOutput `pulumi:"gateway"`
	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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 API Gateway Gateway. Each of these resources serves a different use case:

* `apigateway.GatewayIamPolicy`: Authoritative. Sets the IAM policy for the gateway and replaces any existing policy already attached. * `apigateway.GatewayIamBinding`: 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 gateway are preserved. * `apigateway.GatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the gateway are preserved.

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

* `apigateway.GatewayIamPolicy`: Retrieves the IAM policy for the gateway

> **Note:** `apigateway.GatewayIamPolicy` **cannot** be used in conjunction with `apigateway.GatewayIamBinding` and `apigateway.GatewayIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_gateway\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewGatewayIamPolicy(ctx, "policy", &apigateway.GatewayIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:     pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway:    pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamBinding(ctx, "binding", &apigateway.GatewayIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamMember(ctx, "member", &apigateway.GatewayIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/{{region}}/gateways/{{gateway}} * {{project}}/{{region}}/{{gateway}} * {{region}}/{{gateway}} * {{gateway}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway gateway 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:apigateway/gatewayIamMember:GatewayIamMember editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamMember:GatewayIamMember editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamMember:GatewayIamMember editor projects/{{project}}/locations/{{region}}/gateways/{{gateway}}

```

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

func GetGatewayIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayIamMemberState, opts ...pulumi.ResourceOption) (*GatewayIamMember, error)

GetGatewayIamMember gets an existing GatewayIamMember 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 NewGatewayIamMember

func NewGatewayIamMember(ctx *pulumi.Context,
	name string, args *GatewayIamMemberArgs, opts ...pulumi.ResourceOption) (*GatewayIamMember, error)

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

func (*GatewayIamMember) ElementType

func (*GatewayIamMember) ElementType() reflect.Type

func (*GatewayIamMember) ToGatewayIamMemberOutput

func (i *GatewayIamMember) ToGatewayIamMemberOutput() GatewayIamMemberOutput

func (*GatewayIamMember) ToGatewayIamMemberOutputWithContext

func (i *GatewayIamMember) ToGatewayIamMemberOutputWithContext(ctx context.Context) GatewayIamMemberOutput

func (*GatewayIamMember) ToOutput added in v6.65.1

type GatewayIamMemberArgs

type GatewayIamMemberArgs struct {
	Condition GatewayIamMemberConditionPtrInput
	Gateway   pulumi.StringInput
	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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 GatewayIamMember resource.

func (GatewayIamMemberArgs) ElementType

func (GatewayIamMemberArgs) ElementType() reflect.Type

type GatewayIamMemberArray

type GatewayIamMemberArray []GatewayIamMemberInput

func (GatewayIamMemberArray) ElementType

func (GatewayIamMemberArray) ElementType() reflect.Type

func (GatewayIamMemberArray) ToGatewayIamMemberArrayOutput

func (i GatewayIamMemberArray) ToGatewayIamMemberArrayOutput() GatewayIamMemberArrayOutput

func (GatewayIamMemberArray) ToGatewayIamMemberArrayOutputWithContext

func (i GatewayIamMemberArray) ToGatewayIamMemberArrayOutputWithContext(ctx context.Context) GatewayIamMemberArrayOutput

func (GatewayIamMemberArray) ToOutput added in v6.65.1

type GatewayIamMemberArrayInput

type GatewayIamMemberArrayInput interface {
	pulumi.Input

	ToGatewayIamMemberArrayOutput() GatewayIamMemberArrayOutput
	ToGatewayIamMemberArrayOutputWithContext(context.Context) GatewayIamMemberArrayOutput
}

GatewayIamMemberArrayInput is an input type that accepts GatewayIamMemberArray and GatewayIamMemberArrayOutput values. You can construct a concrete instance of `GatewayIamMemberArrayInput` via:

GatewayIamMemberArray{ GatewayIamMemberArgs{...} }

type GatewayIamMemberArrayOutput

type GatewayIamMemberArrayOutput struct{ *pulumi.OutputState }

func (GatewayIamMemberArrayOutput) ElementType

func (GatewayIamMemberArrayOutput) Index

func (GatewayIamMemberArrayOutput) ToGatewayIamMemberArrayOutput

func (o GatewayIamMemberArrayOutput) ToGatewayIamMemberArrayOutput() GatewayIamMemberArrayOutput

func (GatewayIamMemberArrayOutput) ToGatewayIamMemberArrayOutputWithContext

func (o GatewayIamMemberArrayOutput) ToGatewayIamMemberArrayOutputWithContext(ctx context.Context) GatewayIamMemberArrayOutput

func (GatewayIamMemberArrayOutput) ToOutput added in v6.65.1

type GatewayIamMemberCondition

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

type GatewayIamMemberConditionArgs

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

func (GatewayIamMemberConditionArgs) ElementType

func (GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionOutput

func (i GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionOutput() GatewayIamMemberConditionOutput

func (GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionOutputWithContext

func (i GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionOutputWithContext(ctx context.Context) GatewayIamMemberConditionOutput

func (GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionPtrOutput

func (i GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionPtrOutput() GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionPtrOutputWithContext

func (i GatewayIamMemberConditionArgs) ToGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionArgs) ToOutput added in v6.65.1

type GatewayIamMemberConditionInput

type GatewayIamMemberConditionInput interface {
	pulumi.Input

	ToGatewayIamMemberConditionOutput() GatewayIamMemberConditionOutput
	ToGatewayIamMemberConditionOutputWithContext(context.Context) GatewayIamMemberConditionOutput
}

GatewayIamMemberConditionInput is an input type that accepts GatewayIamMemberConditionArgs and GatewayIamMemberConditionOutput values. You can construct a concrete instance of `GatewayIamMemberConditionInput` via:

GatewayIamMemberConditionArgs{...}

type GatewayIamMemberConditionOutput

type GatewayIamMemberConditionOutput struct{ *pulumi.OutputState }

func (GatewayIamMemberConditionOutput) Description

func (GatewayIamMemberConditionOutput) ElementType

func (GatewayIamMemberConditionOutput) Expression

func (GatewayIamMemberConditionOutput) Title

func (GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionOutput

func (o GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionOutput() GatewayIamMemberConditionOutput

func (GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionOutputWithContext

func (o GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionOutputWithContext(ctx context.Context) GatewayIamMemberConditionOutput

func (GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionPtrOutput

func (o GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionPtrOutput() GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionPtrOutputWithContext

func (o GatewayIamMemberConditionOutput) ToGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionOutput) ToOutput added in v6.65.1

type GatewayIamMemberConditionPtrInput

type GatewayIamMemberConditionPtrInput interface {
	pulumi.Input

	ToGatewayIamMemberConditionPtrOutput() GatewayIamMemberConditionPtrOutput
	ToGatewayIamMemberConditionPtrOutputWithContext(context.Context) GatewayIamMemberConditionPtrOutput
}

GatewayIamMemberConditionPtrInput is an input type that accepts GatewayIamMemberConditionArgs, GatewayIamMemberConditionPtr and GatewayIamMemberConditionPtrOutput values. You can construct a concrete instance of `GatewayIamMemberConditionPtrInput` via:

        GatewayIamMemberConditionArgs{...}

or:

        nil

type GatewayIamMemberConditionPtrOutput

type GatewayIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (GatewayIamMemberConditionPtrOutput) Description

func (GatewayIamMemberConditionPtrOutput) Elem

func (GatewayIamMemberConditionPtrOutput) ElementType

func (GatewayIamMemberConditionPtrOutput) Expression

func (GatewayIamMemberConditionPtrOutput) Title

func (GatewayIamMemberConditionPtrOutput) ToGatewayIamMemberConditionPtrOutput

func (o GatewayIamMemberConditionPtrOutput) ToGatewayIamMemberConditionPtrOutput() GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionPtrOutput) ToGatewayIamMemberConditionPtrOutputWithContext

func (o GatewayIamMemberConditionPtrOutput) ToGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) GatewayIamMemberConditionPtrOutput

func (GatewayIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type GatewayIamMemberInput

type GatewayIamMemberInput interface {
	pulumi.Input

	ToGatewayIamMemberOutput() GatewayIamMemberOutput
	ToGatewayIamMemberOutputWithContext(ctx context.Context) GatewayIamMemberOutput
}

type GatewayIamMemberMap

type GatewayIamMemberMap map[string]GatewayIamMemberInput

func (GatewayIamMemberMap) ElementType

func (GatewayIamMemberMap) ElementType() reflect.Type

func (GatewayIamMemberMap) ToGatewayIamMemberMapOutput

func (i GatewayIamMemberMap) ToGatewayIamMemberMapOutput() GatewayIamMemberMapOutput

func (GatewayIamMemberMap) ToGatewayIamMemberMapOutputWithContext

func (i GatewayIamMemberMap) ToGatewayIamMemberMapOutputWithContext(ctx context.Context) GatewayIamMemberMapOutput

func (GatewayIamMemberMap) ToOutput added in v6.65.1

type GatewayIamMemberMapInput

type GatewayIamMemberMapInput interface {
	pulumi.Input

	ToGatewayIamMemberMapOutput() GatewayIamMemberMapOutput
	ToGatewayIamMemberMapOutputWithContext(context.Context) GatewayIamMemberMapOutput
}

GatewayIamMemberMapInput is an input type that accepts GatewayIamMemberMap and GatewayIamMemberMapOutput values. You can construct a concrete instance of `GatewayIamMemberMapInput` via:

GatewayIamMemberMap{ "key": GatewayIamMemberArgs{...} }

type GatewayIamMemberMapOutput

type GatewayIamMemberMapOutput struct{ *pulumi.OutputState }

func (GatewayIamMemberMapOutput) ElementType

func (GatewayIamMemberMapOutput) ElementType() reflect.Type

func (GatewayIamMemberMapOutput) MapIndex

func (GatewayIamMemberMapOutput) ToGatewayIamMemberMapOutput

func (o GatewayIamMemberMapOutput) ToGatewayIamMemberMapOutput() GatewayIamMemberMapOutput

func (GatewayIamMemberMapOutput) ToGatewayIamMemberMapOutputWithContext

func (o GatewayIamMemberMapOutput) ToGatewayIamMemberMapOutputWithContext(ctx context.Context) GatewayIamMemberMapOutput

func (GatewayIamMemberMapOutput) ToOutput added in v6.65.1

type GatewayIamMemberOutput

type GatewayIamMemberOutput struct{ *pulumi.OutputState }

func (GatewayIamMemberOutput) Condition added in v6.23.0

func (GatewayIamMemberOutput) ElementType

func (GatewayIamMemberOutput) ElementType() reflect.Type

func (GatewayIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (GatewayIamMemberOutput) Gateway added in v6.23.0

func (GatewayIamMemberOutput) Member added in v6.23.0

func (GatewayIamMemberOutput) Project added in v6.23.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 (GatewayIamMemberOutput) Region added in v6.23.0

The region of the gateway for the API. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no region is specified, it is taken from the provider configuration.

func (GatewayIamMemberOutput) Role added in v6.23.0

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

func (GatewayIamMemberOutput) ToGatewayIamMemberOutput

func (o GatewayIamMemberOutput) ToGatewayIamMemberOutput() GatewayIamMemberOutput

func (GatewayIamMemberOutput) ToGatewayIamMemberOutputWithContext

func (o GatewayIamMemberOutput) ToGatewayIamMemberOutputWithContext(ctx context.Context) GatewayIamMemberOutput

func (GatewayIamMemberOutput) ToOutput added in v6.65.1

type GatewayIamMemberState

type GatewayIamMemberState struct {
	Condition GatewayIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Gateway 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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `apigateway.GatewayIamBinding` 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 (GatewayIamMemberState) ElementType

func (GatewayIamMemberState) ElementType() reflect.Type

type GatewayIamPolicy

type GatewayIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput `pulumi:"etag"`
	Gateway pulumi.StringOutput `pulumi:"gateway"`
	// 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"`
	// The region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
}

Three different resources help you manage your IAM policy for API Gateway Gateway. Each of these resources serves a different use case:

* `apigateway.GatewayIamPolicy`: Authoritative. Sets the IAM policy for the gateway and replaces any existing policy already attached. * `apigateway.GatewayIamBinding`: 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 gateway are preserved. * `apigateway.GatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the gateway are preserved.

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

* `apigateway.GatewayIamPolicy`: Retrieves the IAM policy for the gateway

> **Note:** `apigateway.GatewayIamPolicy` **cannot** be used in conjunction with `apigateway.GatewayIamBinding` and `apigateway.GatewayIamMember` or they will fight over what your policy should be.

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

## google\_api\_gateway\_gateway\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigateway"
"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/apigateway.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.NewGatewayIamPolicy(ctx, "policy", &apigateway.GatewayIamPolicyArgs{
			Project:    pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:     pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway:    pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			PolicyData: *pulumi.String(admin.PolicyData),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamBinding(ctx, "binding", &apigateway.GatewayIamBindingArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_api\_gateway\_gateway\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewGatewayIamMember(ctx, "member", &apigateway.GatewayIamMemberArgs{
			Project: pulumi.Any(google_api_gateway_gateway.Api_gw.Project),
			Region:  pulumi.Any(google_api_gateway_gateway.Api_gw.Region),
			Gateway: pulumi.Any(google_api_gateway_gateway.Api_gw.Gateway_id),
			Role:    pulumi.String("roles/apigateway.viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		}, pulumi.Provider(google_beta))
		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/{{region}}/gateways/{{gateway}} * {{project}}/{{region}}/{{gateway}} * {{region}}/{{gateway}} * {{gateway}} Any variables not passed in the import command will be taken from the provider configuration. API Gateway gateway 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:apigateway/gatewayIamPolicy:GatewayIamPolicy editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy editor "projects/{{project}}/locations/{{region}}/gateways/{{gateway}} roles/apigateway.viewer"

```

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

```sh

$ pulumi import gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy editor projects/{{project}}/locations/{{region}}/gateways/{{gateway}}

```

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

func GetGatewayIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayIamPolicyState, opts ...pulumi.ResourceOption) (*GatewayIamPolicy, error)

GetGatewayIamPolicy gets an existing GatewayIamPolicy 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 NewGatewayIamPolicy

func NewGatewayIamPolicy(ctx *pulumi.Context,
	name string, args *GatewayIamPolicyArgs, opts ...pulumi.ResourceOption) (*GatewayIamPolicy, error)

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

func (*GatewayIamPolicy) ElementType

func (*GatewayIamPolicy) ElementType() reflect.Type

func (*GatewayIamPolicy) ToGatewayIamPolicyOutput

func (i *GatewayIamPolicy) ToGatewayIamPolicyOutput() GatewayIamPolicyOutput

func (*GatewayIamPolicy) ToGatewayIamPolicyOutputWithContext

func (i *GatewayIamPolicy) ToGatewayIamPolicyOutputWithContext(ctx context.Context) GatewayIamPolicyOutput

func (*GatewayIamPolicy) ToOutput added in v6.65.1

type GatewayIamPolicyArgs

type GatewayIamPolicyArgs struct {
	Gateway pulumi.StringInput
	// 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 region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a GatewayIamPolicy resource.

func (GatewayIamPolicyArgs) ElementType

func (GatewayIamPolicyArgs) ElementType() reflect.Type

type GatewayIamPolicyArray

type GatewayIamPolicyArray []GatewayIamPolicyInput

func (GatewayIamPolicyArray) ElementType

func (GatewayIamPolicyArray) ElementType() reflect.Type

func (GatewayIamPolicyArray) ToGatewayIamPolicyArrayOutput

func (i GatewayIamPolicyArray) ToGatewayIamPolicyArrayOutput() GatewayIamPolicyArrayOutput

func (GatewayIamPolicyArray) ToGatewayIamPolicyArrayOutputWithContext

func (i GatewayIamPolicyArray) ToGatewayIamPolicyArrayOutputWithContext(ctx context.Context) GatewayIamPolicyArrayOutput

func (GatewayIamPolicyArray) ToOutput added in v6.65.1

type GatewayIamPolicyArrayInput

type GatewayIamPolicyArrayInput interface {
	pulumi.Input

	ToGatewayIamPolicyArrayOutput() GatewayIamPolicyArrayOutput
	ToGatewayIamPolicyArrayOutputWithContext(context.Context) GatewayIamPolicyArrayOutput
}

GatewayIamPolicyArrayInput is an input type that accepts GatewayIamPolicyArray and GatewayIamPolicyArrayOutput values. You can construct a concrete instance of `GatewayIamPolicyArrayInput` via:

GatewayIamPolicyArray{ GatewayIamPolicyArgs{...} }

type GatewayIamPolicyArrayOutput

type GatewayIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (GatewayIamPolicyArrayOutput) ElementType

func (GatewayIamPolicyArrayOutput) Index

func (GatewayIamPolicyArrayOutput) ToGatewayIamPolicyArrayOutput

func (o GatewayIamPolicyArrayOutput) ToGatewayIamPolicyArrayOutput() GatewayIamPolicyArrayOutput

func (GatewayIamPolicyArrayOutput) ToGatewayIamPolicyArrayOutputWithContext

func (o GatewayIamPolicyArrayOutput) ToGatewayIamPolicyArrayOutputWithContext(ctx context.Context) GatewayIamPolicyArrayOutput

func (GatewayIamPolicyArrayOutput) ToOutput added in v6.65.1

type GatewayIamPolicyInput

type GatewayIamPolicyInput interface {
	pulumi.Input

	ToGatewayIamPolicyOutput() GatewayIamPolicyOutput
	ToGatewayIamPolicyOutputWithContext(ctx context.Context) GatewayIamPolicyOutput
}

type GatewayIamPolicyMap

type GatewayIamPolicyMap map[string]GatewayIamPolicyInput

func (GatewayIamPolicyMap) ElementType

func (GatewayIamPolicyMap) ElementType() reflect.Type

func (GatewayIamPolicyMap) ToGatewayIamPolicyMapOutput

func (i GatewayIamPolicyMap) ToGatewayIamPolicyMapOutput() GatewayIamPolicyMapOutput

func (GatewayIamPolicyMap) ToGatewayIamPolicyMapOutputWithContext

func (i GatewayIamPolicyMap) ToGatewayIamPolicyMapOutputWithContext(ctx context.Context) GatewayIamPolicyMapOutput

func (GatewayIamPolicyMap) ToOutput added in v6.65.1

type GatewayIamPolicyMapInput

type GatewayIamPolicyMapInput interface {
	pulumi.Input

	ToGatewayIamPolicyMapOutput() GatewayIamPolicyMapOutput
	ToGatewayIamPolicyMapOutputWithContext(context.Context) GatewayIamPolicyMapOutput
}

GatewayIamPolicyMapInput is an input type that accepts GatewayIamPolicyMap and GatewayIamPolicyMapOutput values. You can construct a concrete instance of `GatewayIamPolicyMapInput` via:

GatewayIamPolicyMap{ "key": GatewayIamPolicyArgs{...} }

type GatewayIamPolicyMapOutput

type GatewayIamPolicyMapOutput struct{ *pulumi.OutputState }

func (GatewayIamPolicyMapOutput) ElementType

func (GatewayIamPolicyMapOutput) ElementType() reflect.Type

func (GatewayIamPolicyMapOutput) MapIndex

func (GatewayIamPolicyMapOutput) ToGatewayIamPolicyMapOutput

func (o GatewayIamPolicyMapOutput) ToGatewayIamPolicyMapOutput() GatewayIamPolicyMapOutput

func (GatewayIamPolicyMapOutput) ToGatewayIamPolicyMapOutputWithContext

func (o GatewayIamPolicyMapOutput) ToGatewayIamPolicyMapOutputWithContext(ctx context.Context) GatewayIamPolicyMapOutput

func (GatewayIamPolicyMapOutput) ToOutput added in v6.65.1

type GatewayIamPolicyOutput

type GatewayIamPolicyOutput struct{ *pulumi.OutputState }

func (GatewayIamPolicyOutput) ElementType

func (GatewayIamPolicyOutput) ElementType() reflect.Type

func (GatewayIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (GatewayIamPolicyOutput) Gateway added in v6.23.0

func (GatewayIamPolicyOutput) PolicyData added in v6.23.0

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

func (GatewayIamPolicyOutput) Project added in v6.23.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 (GatewayIamPolicyOutput) Region added in v6.23.0

The region of the gateway for the API. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no region is specified, it is taken from the provider configuration.

func (GatewayIamPolicyOutput) ToGatewayIamPolicyOutput

func (o GatewayIamPolicyOutput) ToGatewayIamPolicyOutput() GatewayIamPolicyOutput

func (GatewayIamPolicyOutput) ToGatewayIamPolicyOutputWithContext

func (o GatewayIamPolicyOutput) ToGatewayIamPolicyOutputWithContext(ctx context.Context) GatewayIamPolicyOutput

func (GatewayIamPolicyOutput) ToOutput added in v6.65.1

type GatewayIamPolicyState

type GatewayIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Gateway 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
	// The region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
}

func (GatewayIamPolicyState) ElementType

func (GatewayIamPolicyState) ElementType() reflect.Type

type GatewayInput

type GatewayInput interface {
	pulumi.Input

	ToGatewayOutput() GatewayOutput
	ToGatewayOutputWithContext(ctx context.Context) GatewayOutput
}

type GatewayMap

type GatewayMap map[string]GatewayInput

func (GatewayMap) ElementType

func (GatewayMap) ElementType() reflect.Type

func (GatewayMap) ToGatewayMapOutput

func (i GatewayMap) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMap) ToGatewayMapOutputWithContext

func (i GatewayMap) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

func (GatewayMap) ToOutput added in v6.65.1

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

type GatewayMapInput

type GatewayMapInput interface {
	pulumi.Input

	ToGatewayMapOutput() GatewayMapOutput
	ToGatewayMapOutputWithContext(context.Context) GatewayMapOutput
}

GatewayMapInput is an input type that accepts GatewayMap and GatewayMapOutput values. You can construct a concrete instance of `GatewayMapInput` via:

GatewayMap{ "key": GatewayArgs{...} }

type GatewayMapOutput

type GatewayMapOutput struct{ *pulumi.OutputState }

func (GatewayMapOutput) ElementType

func (GatewayMapOutput) ElementType() reflect.Type

func (GatewayMapOutput) MapIndex

func (GatewayMapOutput) ToGatewayMapOutput

func (o GatewayMapOutput) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMapOutput) ToGatewayMapOutputWithContext

func (o GatewayMapOutput) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

func (GatewayMapOutput) ToOutput added in v6.65.1

type GatewayOutput

type GatewayOutput struct{ *pulumi.OutputState }

func (GatewayOutput) ApiConfig added in v6.23.0

func (o GatewayOutput) ApiConfig() pulumi.StringOutput

Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}. When changing api configs please ensure the new config is a new resource and the lifecycle rule `createBeforeDestroy` is set.

func (GatewayOutput) DefaultHostname added in v6.23.0

func (o GatewayOutput) DefaultHostname() pulumi.StringOutput

The default API Gateway host name of the form {gatewayId}-{hash}.{region_code}.gateway.dev.

func (GatewayOutput) DisplayName added in v6.23.0

func (o GatewayOutput) DisplayName() pulumi.StringOutput

A user-visible name for the API.

func (GatewayOutput) ElementType

func (GatewayOutput) ElementType() reflect.Type

func (GatewayOutput) GatewayId added in v6.23.0

func (o GatewayOutput) GatewayId() pulumi.StringOutput

Identifier to assign to the Gateway. Must be unique within scope of the parent resource(project).

***

func (GatewayOutput) Labels added in v6.23.0

Resource labels to represent user-provided metadata.

func (GatewayOutput) Name added in v6.23.0

Resource name of the Gateway. Format: projects/{project}/locations/{region}/gateways/{gateway}

func (GatewayOutput) Project added in v6.23.0

func (o GatewayOutput) Project() pulumi.StringOutput

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

func (GatewayOutput) Region added in v6.23.0

func (o GatewayOutput) Region() pulumi.StringOutput

The region of the gateway for the API.

func (GatewayOutput) ToGatewayOutput

func (o GatewayOutput) ToGatewayOutput() GatewayOutput

func (GatewayOutput) ToGatewayOutputWithContext

func (o GatewayOutput) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

func (GatewayOutput) ToOutput added in v6.65.1

func (o GatewayOutput) ToOutput(ctx context.Context) pulumix.Output[*Gateway]

type GatewayState

type GatewayState struct {
	// Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}.
	// When changing api configs please ensure the new config is a new resource and the lifecycle rule `createBeforeDestroy` is set.
	ApiConfig pulumi.StringPtrInput
	// The default API Gateway host name of the form {gatewayId}-{hash}.{region_code}.gateway.dev.
	DefaultHostname pulumi.StringPtrInput
	// A user-visible name for the API.
	DisplayName pulumi.StringPtrInput
	// Identifier to assign to the Gateway. Must be unique within scope of the parent resource(project).
	//
	// ***
	GatewayId pulumi.StringPtrInput
	// Resource labels to represent user-provided metadata.
	Labels pulumi.StringMapInput
	// Resource name of the Gateway. Format: projects/{project}/locations/{region}/gateways/{gateway}
	Name 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 region of the gateway for the API.
	Region pulumi.StringPtrInput
}

func (GatewayState) ElementType

func (GatewayState) ElementType() reflect.Type

type LookupApiConfigIamPolicyArgs added in v6.59.0

type LookupApiConfigIamPolicyArgs struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       string `pulumi:"api"`
	ApiConfig string `pulumi:"apiConfig"`
	// 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 getApiConfigIamPolicy.

type LookupApiConfigIamPolicyOutputArgs added in v6.59.0

type LookupApiConfigIamPolicyOutputArgs struct {
	// The API to attach the config to.
	// Used to find the parent resource to bind the IAM policy to
	Api       pulumi.StringInput `pulumi:"api"`
	ApiConfig pulumi.StringInput `pulumi:"apiConfig"`
	// 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 getApiConfigIamPolicy.

func (LookupApiConfigIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupApiConfigIamPolicyResult added in v6.59.0

type LookupApiConfigIamPolicyResult struct {
	Api       string `pulumi:"api"`
	ApiConfig string `pulumi:"apiConfig"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `apigateway.ApiConfigIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
}

A collection of values returned by getApiConfigIamPolicy.

func LookupApiConfigIamPolicy added in v6.59.0

func LookupApiConfigIamPolicy(ctx *pulumi.Context, args *LookupApiConfigIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupApiConfigIamPolicyResult, error)

type LookupApiConfigIamPolicyResultOutput added in v6.59.0

type LookupApiConfigIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getApiConfigIamPolicy.

func (LookupApiConfigIamPolicyResultOutput) Api added in v6.59.0

func (LookupApiConfigIamPolicyResultOutput) ApiConfig added in v6.59.0

func (LookupApiConfigIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupApiConfigIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupApiConfigIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupApiConfigIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `apigateway.ApiConfigIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupApiConfigIamPolicyResultOutput) Project added in v6.59.0

func (LookupApiConfigIamPolicyResultOutput) ToLookupApiConfigIamPolicyResultOutput added in v6.59.0

func (o LookupApiConfigIamPolicyResultOutput) ToLookupApiConfigIamPolicyResultOutput() LookupApiConfigIamPolicyResultOutput

func (LookupApiConfigIamPolicyResultOutput) ToLookupApiConfigIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupApiConfigIamPolicyResultOutput) ToLookupApiConfigIamPolicyResultOutputWithContext(ctx context.Context) LookupApiConfigIamPolicyResultOutput

func (LookupApiConfigIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupApiIamPolicyArgs added in v6.59.0

type LookupApiIamPolicyArgs struct {
	Api string `pulumi:"api"`
	// 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 getApiIamPolicy.

type LookupApiIamPolicyOutputArgs added in v6.59.0

type LookupApiIamPolicyOutputArgs struct {
	Api pulumi.StringInput `pulumi:"api"`
	// 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 getApiIamPolicy.

func (LookupApiIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupApiIamPolicyResult added in v6.59.0

type LookupApiIamPolicyResult struct {
	Api string `pulumi:"api"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `apigateway.ApiIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
}

A collection of values returned by getApiIamPolicy.

func LookupApiIamPolicy added in v6.59.0

func LookupApiIamPolicy(ctx *pulumi.Context, args *LookupApiIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupApiIamPolicyResult, error)

type LookupApiIamPolicyResultOutput added in v6.59.0

type LookupApiIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getApiIamPolicy.

func LookupApiIamPolicyOutput added in v6.59.0

func (LookupApiIamPolicyResultOutput) Api added in v6.59.0

func (LookupApiIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupApiIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupApiIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupApiIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `apigateway.ApiIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupApiIamPolicyResultOutput) Project added in v6.59.0

func (LookupApiIamPolicyResultOutput) ToLookupApiIamPolicyResultOutput added in v6.59.0

func (o LookupApiIamPolicyResultOutput) ToLookupApiIamPolicyResultOutput() LookupApiIamPolicyResultOutput

func (LookupApiIamPolicyResultOutput) ToLookupApiIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupApiIamPolicyResultOutput) ToLookupApiIamPolicyResultOutputWithContext(ctx context.Context) LookupApiIamPolicyResultOutput

func (LookupApiIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupGatewayIamPolicyArgs added in v6.59.0

type LookupGatewayIamPolicyArgs struct {
	Gateway string `pulumi:"gateway"`
	// 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"`
	// The region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getGatewayIamPolicy.

type LookupGatewayIamPolicyOutputArgs added in v6.59.0

type LookupGatewayIamPolicyOutputArgs struct {
	Gateway pulumi.StringInput `pulumi:"gateway"`
	// 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"`
	// The region of the gateway for the API.
	// Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getGatewayIamPolicy.

func (LookupGatewayIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupGatewayIamPolicyResult added in v6.59.0

type LookupGatewayIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag    string `pulumi:"etag"`
	Gateway string `pulumi:"gateway"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `apigateway.GatewayIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
	Region     string `pulumi:"region"`
}

A collection of values returned by getGatewayIamPolicy.

func LookupGatewayIamPolicy added in v6.59.0

func LookupGatewayIamPolicy(ctx *pulumi.Context, args *LookupGatewayIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupGatewayIamPolicyResult, error)

type LookupGatewayIamPolicyResultOutput added in v6.59.0

type LookupGatewayIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getGatewayIamPolicy.

func LookupGatewayIamPolicyOutput added in v6.59.0

func (LookupGatewayIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupGatewayIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupGatewayIamPolicyResultOutput) Gateway added in v6.59.0

func (LookupGatewayIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupGatewayIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `apigateway.GatewayIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupGatewayIamPolicyResultOutput) Project added in v6.59.0

func (LookupGatewayIamPolicyResultOutput) Region added in v6.59.0

func (LookupGatewayIamPolicyResultOutput) ToLookupGatewayIamPolicyResultOutput added in v6.59.0

func (o LookupGatewayIamPolicyResultOutput) ToLookupGatewayIamPolicyResultOutput() LookupGatewayIamPolicyResultOutput

func (LookupGatewayIamPolicyResultOutput) ToLookupGatewayIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupGatewayIamPolicyResultOutput) ToLookupGatewayIamPolicyResultOutputWithContext(ctx context.Context) LookupGatewayIamPolicyResultOutput

func (LookupGatewayIamPolicyResultOutput) ToOutput added in v6.65.1

Jump to

Keyboard shortcuts

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