Documentation
¶
Index ¶
- type Endpoint
- type EndpointArgs
- type EndpointInput
- type EndpointOutput
- type EndpointState
- type Namespace
- type NamespaceArgs
- type NamespaceIamBinding
- type NamespaceIamBindingArgs
- type NamespaceIamBindingCondition
- type NamespaceIamBindingConditionArgs
- func (NamespaceIamBindingConditionArgs) ElementType() reflect.Type
- func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutput() NamespaceIamBindingConditionOutput
- func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutputWithContext(ctx context.Context) NamespaceIamBindingConditionOutput
- func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
- func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
- type NamespaceIamBindingConditionInput
- type NamespaceIamBindingConditionOutput
- func (o NamespaceIamBindingConditionOutput) Description() pulumi.StringPtrOutput
- func (NamespaceIamBindingConditionOutput) ElementType() reflect.Type
- func (o NamespaceIamBindingConditionOutput) Expression() pulumi.StringOutput
- func (o NamespaceIamBindingConditionOutput) Title() pulumi.StringOutput
- func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutput() NamespaceIamBindingConditionOutput
- func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutputWithContext(ctx context.Context) NamespaceIamBindingConditionOutput
- func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
- func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
- type NamespaceIamBindingConditionPtrInput
- type NamespaceIamBindingConditionPtrOutput
- func (o NamespaceIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput
- func (o NamespaceIamBindingConditionPtrOutput) Elem() NamespaceIamBindingConditionOutput
- func (NamespaceIamBindingConditionPtrOutput) ElementType() reflect.Type
- func (o NamespaceIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput
- func (o NamespaceIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput
- func (o NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
- func (o NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
- type NamespaceIamBindingInput
- type NamespaceIamBindingOutput
- type NamespaceIamBindingState
- type NamespaceIamMember
- type NamespaceIamMemberArgs
- type NamespaceIamMemberCondition
- type NamespaceIamMemberConditionArgs
- func (NamespaceIamMemberConditionArgs) ElementType() reflect.Type
- func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutput() NamespaceIamMemberConditionOutput
- func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutputWithContext(ctx context.Context) NamespaceIamMemberConditionOutput
- func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
- func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
- type NamespaceIamMemberConditionInput
- type NamespaceIamMemberConditionOutput
- func (o NamespaceIamMemberConditionOutput) Description() pulumi.StringPtrOutput
- func (NamespaceIamMemberConditionOutput) ElementType() reflect.Type
- func (o NamespaceIamMemberConditionOutput) Expression() pulumi.StringOutput
- func (o NamespaceIamMemberConditionOutput) Title() pulumi.StringOutput
- func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutput() NamespaceIamMemberConditionOutput
- func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutputWithContext(ctx context.Context) NamespaceIamMemberConditionOutput
- func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
- func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
- type NamespaceIamMemberConditionPtrInput
- type NamespaceIamMemberConditionPtrOutput
- func (o NamespaceIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput
- func (o NamespaceIamMemberConditionPtrOutput) Elem() NamespaceIamMemberConditionOutput
- func (NamespaceIamMemberConditionPtrOutput) ElementType() reflect.Type
- func (o NamespaceIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput
- func (o NamespaceIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput
- func (o NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
- func (o NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
- type NamespaceIamMemberInput
- type NamespaceIamMemberOutput
- type NamespaceIamMemberState
- type NamespaceIamPolicy
- type NamespaceIamPolicyArgs
- type NamespaceIamPolicyInput
- type NamespaceIamPolicyOutput
- type NamespaceIamPolicyState
- type NamespaceInput
- type NamespaceOutput
- type NamespaceState
- type Service
- type ServiceArgs
- type ServiceIamBinding
- type ServiceIamBindingArgs
- type ServiceIamBindingCondition
- type ServiceIamBindingConditionArgs
- func (ServiceIamBindingConditionArgs) ElementType() reflect.Type
- func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput
- func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput
- func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
- func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
- type ServiceIamBindingConditionInput
- type ServiceIamBindingConditionOutput
- func (o ServiceIamBindingConditionOutput) Description() pulumi.StringPtrOutput
- func (ServiceIamBindingConditionOutput) ElementType() reflect.Type
- func (o ServiceIamBindingConditionOutput) Expression() pulumi.StringOutput
- func (o ServiceIamBindingConditionOutput) Title() pulumi.StringOutput
- func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput
- func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput
- func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
- func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
- type ServiceIamBindingConditionPtrInput
- type ServiceIamBindingConditionPtrOutput
- func (o ServiceIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput
- func (o ServiceIamBindingConditionPtrOutput) Elem() ServiceIamBindingConditionOutput
- func (ServiceIamBindingConditionPtrOutput) ElementType() reflect.Type
- func (o ServiceIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput
- func (o ServiceIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput
- func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
- func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
- type ServiceIamBindingInput
- type ServiceIamBindingOutput
- type ServiceIamBindingState
- type ServiceIamMember
- type ServiceIamMemberArgs
- type ServiceIamMemberCondition
- type ServiceIamMemberConditionArgs
- func (ServiceIamMemberConditionArgs) ElementType() reflect.Type
- func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput
- func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput
- func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
- func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
- type ServiceIamMemberConditionInput
- type ServiceIamMemberConditionOutput
- func (o ServiceIamMemberConditionOutput) Description() pulumi.StringPtrOutput
- func (ServiceIamMemberConditionOutput) ElementType() reflect.Type
- func (o ServiceIamMemberConditionOutput) Expression() pulumi.StringOutput
- func (o ServiceIamMemberConditionOutput) Title() pulumi.StringOutput
- func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput
- func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput
- func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
- func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
- type ServiceIamMemberConditionPtrInput
- type ServiceIamMemberConditionPtrOutput
- func (o ServiceIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput
- func (o ServiceIamMemberConditionPtrOutput) Elem() ServiceIamMemberConditionOutput
- func (ServiceIamMemberConditionPtrOutput) ElementType() reflect.Type
- func (o ServiceIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput
- func (o ServiceIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput
- func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
- func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
- type ServiceIamMemberInput
- type ServiceIamMemberOutput
- type ServiceIamMemberState
- type ServiceIamPolicy
- type ServiceIamPolicyArgs
- type ServiceIamPolicyInput
- type ServiceIamPolicyOutput
- type ServiceIamPolicyState
- type ServiceInput
- type ServiceOutput
- type ServiceState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Endpoint ¶
type Endpoint struct { pulumi.CustomResourceState // IPv4 or IPv6 address of the endpoint. Address pulumi.StringPtrOutput `pulumi:"address"` // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. EndpointId pulumi.StringOutput `pulumi:"endpointId"` // Metadata for the endpoint. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 512 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapOutput `pulumi:"metadata"` // The resource name for the endpoint in the format 'projects/*/locations/*/namespaces/*/services/*/endpoints/*'. Name pulumi.StringOutput `pulumi:"name"` // Port that the endpoint is running on, must be in the // range of [0, 65535]. If unspecified, the default is 0. Port pulumi.IntPtrOutput `pulumi:"port"` // The resource name of the service that this endpoint provides. Service pulumi.StringOutput `pulumi:"service"` }
An individual endpoint that provides a service.
To get more information about Endpoint, see:
* [API documentation](https://cloud.google.com/service-directory/docs/reference/rest/v1beta1/projects.locations.namespaces.services.endpoints) * How-to Guides
- [Configuring an endpoint](https://cloud.google.com/service-directory/docs/configuring-service-directory#configuring_an_endpoint)
## Example Usage ### Service Directory Endpoint Basic
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { exampleNamespace, err := servicedirectory.NewNamespace(ctx, "exampleNamespace", &servicedirectory.NamespaceArgs{ NamespaceId: pulumi.String("example-namespace"), Location: pulumi.String("us-central1"), }, pulumi.Provider(google_beta)) if err != nil { return err } exampleService, err := servicedirectory.NewService(ctx, "exampleService", &servicedirectory.ServiceArgs{ ServiceId: pulumi.String("example-service"), Namespace: exampleNamespace.ID(), }, pulumi.Provider(google_beta)) if err != nil { return err } _, err = servicedirectory.NewEndpoint(ctx, "exampleEndpoint", &servicedirectory.EndpointArgs{ EndpointId: pulumi.String("example-endpoint"), Service: exampleService.ID(), Metadata: pulumi.StringMap{ "stage": pulumi.String("prod"), "region": pulumi.String("us-central1"), }, Address: pulumi.String("1.2.3.4"), Port: pulumi.Int(5353), }, pulumi.Provider(google_beta)) if err != nil { return err } return nil }) }
```
## Import
Endpoint can be imported using any of these accepted formats ¶
```sh
$ pulumi import gcp:servicedirectory/endpoint:Endpoint default projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}/endpoints/{{endpoint_id}}
```
```sh
$ pulumi import gcp:servicedirectory/endpoint:Endpoint default {{project}}/{{location}}/{{namespace_id}}/{{service_id}}/{{endpoint_id}}
```
```sh
$ pulumi import gcp:servicedirectory/endpoint:Endpoint default {{location}}/{{namespace_id}}/{{service_id}}/{{endpoint_id}}
```
func GetEndpoint ¶
func GetEndpoint(ctx *pulumi.Context, name string, id pulumi.IDInput, state *EndpointState, opts ...pulumi.ResourceOption) (*Endpoint, error)
GetEndpoint gets an existing Endpoint 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 NewEndpoint ¶
func NewEndpoint(ctx *pulumi.Context, name string, args *EndpointArgs, opts ...pulumi.ResourceOption) (*Endpoint, error)
NewEndpoint registers a new resource with the given unique name, arguments, and options.
func (Endpoint) ElementType ¶ added in v4.4.0
func (Endpoint) ToEndpointOutput ¶ added in v4.4.0
func (i Endpoint) ToEndpointOutput() EndpointOutput
func (Endpoint) ToEndpointOutputWithContext ¶ added in v4.4.0
func (i Endpoint) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput
type EndpointArgs ¶
type EndpointArgs struct { // IPv4 or IPv6 address of the endpoint. Address pulumi.StringPtrInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. EndpointId pulumi.StringInput // Metadata for the endpoint. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 512 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapInput // Port that the endpoint is running on, must be in the // range of [0, 65535]. If unspecified, the default is 0. Port pulumi.IntPtrInput // The resource name of the service that this endpoint provides. Service pulumi.StringInput }
The set of arguments for constructing a Endpoint resource.
func (EndpointArgs) ElementType ¶
func (EndpointArgs) ElementType() reflect.Type
type EndpointInput ¶ added in v4.4.0
type EndpointInput interface { pulumi.Input ToEndpointOutput() EndpointOutput ToEndpointOutputWithContext(ctx context.Context) EndpointOutput }
type EndpointOutput ¶ added in v4.4.0
type EndpointOutput struct {
*pulumi.OutputState
}
func (EndpointOutput) ElementType ¶ added in v4.4.0
func (EndpointOutput) ElementType() reflect.Type
func (EndpointOutput) ToEndpointOutput ¶ added in v4.4.0
func (o EndpointOutput) ToEndpointOutput() EndpointOutput
func (EndpointOutput) ToEndpointOutputWithContext ¶ added in v4.4.0
func (o EndpointOutput) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput
type EndpointState ¶
type EndpointState struct { // IPv4 or IPv6 address of the endpoint. Address pulumi.StringPtrInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. EndpointId pulumi.StringPtrInput // Metadata for the endpoint. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 512 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapInput // The resource name for the endpoint in the format 'projects/*/locations/*/namespaces/*/services/*/endpoints/*'. Name pulumi.StringPtrInput // Port that the endpoint is running on, must be in the // range of [0, 65535]. If unspecified, the default is 0. Port pulumi.IntPtrInput // The resource name of the service that this endpoint provides. Service pulumi.StringPtrInput }
func (EndpointState) ElementType ¶
func (EndpointState) ElementType() reflect.Type
type Namespace ¶
type Namespace struct { pulumi.CustomResourceState // Resource labels associated with this Namespace. No more than 64 user // labels can be associated with a given resource. Label keys and values can // be no longer than 63 characters. Labels pulumi.StringMapOutput `pulumi:"labels"` // The location for the Namespace. // A full list of valid locations can be found by running // `gcloud beta service-directory locations list`. Location pulumi.StringOutput `pulumi:"location"` // The resource name for the namespace in the format 'projects/*/locations/*/namespaces/*'. Name pulumi.StringOutput `pulumi:"name"` // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. NamespaceId pulumi.StringOutput `pulumi:"namespaceId"` // 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 container for `services`. Namespaces allow administrators to group services together and define permissions for a collection of services.
To get more information about Namespace, see:
* [API documentation](https://cloud.google.com/service-directory/docs/reference/rest/v1beta1/projects.locations.namespaces) * How-to Guides
- [Configuring a namespace](https://cloud.google.com/service-directory/docs/configuring-service-directory#configuring_a_namespace)
## Example Usage ### Service Directory Namespace Basic
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespace(ctx, "example", &servicedirectory.NamespaceArgs{ NamespaceId: pulumi.String("example-namespace"), Location: pulumi.String("us-central1"), Labels: pulumi.StringMap{ "key": pulumi.String("value"), "foo": pulumi.String("bar"), }, }, pulumi.Provider(google_beta)) if err != nil { return err } return nil }) }
```
## Import
Namespace can be imported using any of these accepted formats ¶
```sh
$ pulumi import gcp:servicedirectory/namespace:Namespace default projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}
```
```sh
$ pulumi import gcp:servicedirectory/namespace:Namespace default {{project}}/{{location}}/{{namespace_id}}
```
```sh
$ pulumi import gcp:servicedirectory/namespace:Namespace default {{location}}/{{namespace_id}}
```
func GetNamespace ¶
func GetNamespace(ctx *pulumi.Context, name string, id pulumi.IDInput, state *NamespaceState, opts ...pulumi.ResourceOption) (*Namespace, error)
GetNamespace gets an existing Namespace 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 NewNamespace ¶
func NewNamespace(ctx *pulumi.Context, name string, args *NamespaceArgs, opts ...pulumi.ResourceOption) (*Namespace, error)
NewNamespace registers a new resource with the given unique name, arguments, and options.
func (Namespace) ElementType ¶ added in v4.4.0
func (Namespace) ToNamespaceOutput ¶ added in v4.4.0
func (i Namespace) ToNamespaceOutput() NamespaceOutput
func (Namespace) ToNamespaceOutputWithContext ¶ added in v4.4.0
func (i Namespace) ToNamespaceOutputWithContext(ctx context.Context) NamespaceOutput
type NamespaceArgs ¶
type NamespaceArgs struct { // Resource labels associated with this Namespace. No more than 64 user // labels can be associated with a given resource. Label keys and values can // be no longer than 63 characters. Labels pulumi.StringMapInput // The location for the Namespace. // A full list of valid locations can be found by running // `gcloud beta service-directory locations list`. Location pulumi.StringInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. NamespaceId pulumi.StringInput // 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 Namespace resource.
func (NamespaceArgs) ElementType ¶
func (NamespaceArgs) ElementType() reflect.Type
type NamespaceIamBinding ¶
type NamespaceIamBinding struct { pulumi.CustomResourceState Condition NamespaceIamBindingConditionPtrOutput `pulumi:"condition"` // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` Members pulumi.StringArrayOutput `pulumi:"members"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 Service Directory Namespace. Each of these resources serves a different use case:
* `servicedirectory.NamespaceIamPolicy`: Authoritative. Sets the IAM policy for the namespace and replaces any existing policy already attached. * `servicedirectory.NamespaceIamBinding`: 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 namespace are preserved. * `servicedirectory.NamespaceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the namespace are preserved.
> **Note:** `servicedirectory.NamespaceIamPolicy` **cannot** be used in conjunction with `servicedirectory.NamespaceIamBinding` and `servicedirectory.NamespaceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.NamespaceIamBinding` resources **can be** used in conjunction with `servicedirectory.NamespaceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_namespace\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewNamespaceIamPolicy(ctx, "policy", &servicedirectory.NamespaceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamBinding(ctx, "binding", &servicedirectory.NamespaceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamMember(ctx, "member", &servicedirectory.NamespaceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} * {{project}}/{{location}}/{{namespace_id}} * {{location}}/{{namespace_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory namespace 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:servicedirectory/namespaceIamBinding:NamespaceIamBinding editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamBinding:NamespaceIamBinding editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamBinding:NamespaceIamBinding editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetNamespaceIamBinding ¶
func GetNamespaceIamBinding(ctx *pulumi.Context, name string, id pulumi.IDInput, state *NamespaceIamBindingState, opts ...pulumi.ResourceOption) (*NamespaceIamBinding, error)
GetNamespaceIamBinding gets an existing NamespaceIamBinding 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 NewNamespaceIamBinding ¶
func NewNamespaceIamBinding(ctx *pulumi.Context, name string, args *NamespaceIamBindingArgs, opts ...pulumi.ResourceOption) (*NamespaceIamBinding, error)
NewNamespaceIamBinding registers a new resource with the given unique name, arguments, and options.
func (NamespaceIamBinding) ElementType ¶ added in v4.4.0
func (NamespaceIamBinding) ElementType() reflect.Type
func (NamespaceIamBinding) ToNamespaceIamBindingOutput ¶ added in v4.4.0
func (i NamespaceIamBinding) ToNamespaceIamBindingOutput() NamespaceIamBindingOutput
func (NamespaceIamBinding) ToNamespaceIamBindingOutputWithContext ¶ added in v4.4.0
func (i NamespaceIamBinding) ToNamespaceIamBindingOutputWithContext(ctx context.Context) NamespaceIamBindingOutput
type NamespaceIamBindingArgs ¶
type NamespaceIamBindingArgs struct { Condition NamespaceIamBindingConditionPtrInput Members pulumi.StringArrayInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 NamespaceIamBinding resource.
func (NamespaceIamBindingArgs) ElementType ¶
func (NamespaceIamBindingArgs) ElementType() reflect.Type
type NamespaceIamBindingConditionArgs ¶
type NamespaceIamBindingConditionArgs struct { Description pulumi.StringPtrInput `pulumi:"description"` Expression pulumi.StringInput `pulumi:"expression"` Title pulumi.StringInput `pulumi:"title"` }
func (NamespaceIamBindingConditionArgs) ElementType ¶
func (NamespaceIamBindingConditionArgs) ElementType() reflect.Type
func (NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutput ¶
func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutput() NamespaceIamBindingConditionOutput
func (NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutputWithContext ¶
func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionOutputWithContext(ctx context.Context) NamespaceIamBindingConditionOutput
func (NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutput ¶
func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
func (NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutputWithContext ¶
func (i NamespaceIamBindingConditionArgs) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
type NamespaceIamBindingConditionInput ¶
type NamespaceIamBindingConditionInput interface { pulumi.Input ToNamespaceIamBindingConditionOutput() NamespaceIamBindingConditionOutput ToNamespaceIamBindingConditionOutputWithContext(context.Context) NamespaceIamBindingConditionOutput }
NamespaceIamBindingConditionInput is an input type that accepts NamespaceIamBindingConditionArgs and NamespaceIamBindingConditionOutput values. You can construct a concrete instance of `NamespaceIamBindingConditionInput` via:
NamespaceIamBindingConditionArgs{...}
type NamespaceIamBindingConditionOutput ¶
type NamespaceIamBindingConditionOutput struct{ *pulumi.OutputState }
func (NamespaceIamBindingConditionOutput) Description ¶
func (o NamespaceIamBindingConditionOutput) Description() pulumi.StringPtrOutput
func (NamespaceIamBindingConditionOutput) ElementType ¶
func (NamespaceIamBindingConditionOutput) ElementType() reflect.Type
func (NamespaceIamBindingConditionOutput) Expression ¶
func (o NamespaceIamBindingConditionOutput) Expression() pulumi.StringOutput
func (NamespaceIamBindingConditionOutput) Title ¶
func (o NamespaceIamBindingConditionOutput) Title() pulumi.StringOutput
func (NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutput ¶
func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutput() NamespaceIamBindingConditionOutput
func (NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutputWithContext ¶
func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionOutputWithContext(ctx context.Context) NamespaceIamBindingConditionOutput
func (NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutput ¶
func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
func (NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutputWithContext ¶
func (o NamespaceIamBindingConditionOutput) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
type NamespaceIamBindingConditionPtrInput ¶
type NamespaceIamBindingConditionPtrInput interface { pulumi.Input ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput ToNamespaceIamBindingConditionPtrOutputWithContext(context.Context) NamespaceIamBindingConditionPtrOutput }
NamespaceIamBindingConditionPtrInput is an input type that accepts NamespaceIamBindingConditionArgs, NamespaceIamBindingConditionPtr and NamespaceIamBindingConditionPtrOutput values. You can construct a concrete instance of `NamespaceIamBindingConditionPtrInput` via:
NamespaceIamBindingConditionArgs{...} or: nil
func NamespaceIamBindingConditionPtr ¶
func NamespaceIamBindingConditionPtr(v *NamespaceIamBindingConditionArgs) NamespaceIamBindingConditionPtrInput
type NamespaceIamBindingConditionPtrOutput ¶
type NamespaceIamBindingConditionPtrOutput struct{ *pulumi.OutputState }
func (NamespaceIamBindingConditionPtrOutput) Description ¶
func (o NamespaceIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput
func (NamespaceIamBindingConditionPtrOutput) ElementType ¶
func (NamespaceIamBindingConditionPtrOutput) ElementType() reflect.Type
func (NamespaceIamBindingConditionPtrOutput) Expression ¶
func (o NamespaceIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput
func (NamespaceIamBindingConditionPtrOutput) Title ¶
func (o NamespaceIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput
func (NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutput ¶
func (o NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutput() NamespaceIamBindingConditionPtrOutput
func (NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutputWithContext ¶
func (o NamespaceIamBindingConditionPtrOutput) ToNamespaceIamBindingConditionPtrOutputWithContext(ctx context.Context) NamespaceIamBindingConditionPtrOutput
type NamespaceIamBindingInput ¶ added in v4.4.0
type NamespaceIamBindingInput interface { pulumi.Input ToNamespaceIamBindingOutput() NamespaceIamBindingOutput ToNamespaceIamBindingOutputWithContext(ctx context.Context) NamespaceIamBindingOutput }
type NamespaceIamBindingOutput ¶ added in v4.4.0
type NamespaceIamBindingOutput struct {
*pulumi.OutputState
}
func (NamespaceIamBindingOutput) ElementType ¶ added in v4.4.0
func (NamespaceIamBindingOutput) ElementType() reflect.Type
func (NamespaceIamBindingOutput) ToNamespaceIamBindingOutput ¶ added in v4.4.0
func (o NamespaceIamBindingOutput) ToNamespaceIamBindingOutput() NamespaceIamBindingOutput
func (NamespaceIamBindingOutput) ToNamespaceIamBindingOutputWithContext ¶ added in v4.4.0
func (o NamespaceIamBindingOutput) ToNamespaceIamBindingOutputWithContext(ctx context.Context) NamespaceIamBindingOutput
type NamespaceIamBindingState ¶
type NamespaceIamBindingState struct { Condition NamespaceIamBindingConditionPtrInput // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput Members pulumi.StringArrayInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 (NamespaceIamBindingState) ElementType ¶
func (NamespaceIamBindingState) ElementType() reflect.Type
type NamespaceIamMember ¶
type NamespaceIamMember struct { pulumi.CustomResourceState Condition NamespaceIamMemberConditionPtrOutput `pulumi:"condition"` // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` Member pulumi.StringOutput `pulumi:"member"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 Service Directory Namespace. Each of these resources serves a different use case:
* `servicedirectory.NamespaceIamPolicy`: Authoritative. Sets the IAM policy for the namespace and replaces any existing policy already attached. * `servicedirectory.NamespaceIamBinding`: 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 namespace are preserved. * `servicedirectory.NamespaceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the namespace are preserved.
> **Note:** `servicedirectory.NamespaceIamPolicy` **cannot** be used in conjunction with `servicedirectory.NamespaceIamBinding` and `servicedirectory.NamespaceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.NamespaceIamBinding` resources **can be** used in conjunction with `servicedirectory.NamespaceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_namespace\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewNamespaceIamPolicy(ctx, "policy", &servicedirectory.NamespaceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamBinding(ctx, "binding", &servicedirectory.NamespaceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamMember(ctx, "member", &servicedirectory.NamespaceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} * {{project}}/{{location}}/{{namespace_id}} * {{location}}/{{namespace_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory namespace 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:servicedirectory/namespaceIamMember:NamespaceIamMember editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamMember:NamespaceIamMember editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamMember:NamespaceIamMember editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetNamespaceIamMember ¶
func GetNamespaceIamMember(ctx *pulumi.Context, name string, id pulumi.IDInput, state *NamespaceIamMemberState, opts ...pulumi.ResourceOption) (*NamespaceIamMember, error)
GetNamespaceIamMember gets an existing NamespaceIamMember 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 NewNamespaceIamMember ¶
func NewNamespaceIamMember(ctx *pulumi.Context, name string, args *NamespaceIamMemberArgs, opts ...pulumi.ResourceOption) (*NamespaceIamMember, error)
NewNamespaceIamMember registers a new resource with the given unique name, arguments, and options.
func (NamespaceIamMember) ElementType ¶ added in v4.4.0
func (NamespaceIamMember) ElementType() reflect.Type
func (NamespaceIamMember) ToNamespaceIamMemberOutput ¶ added in v4.4.0
func (i NamespaceIamMember) ToNamespaceIamMemberOutput() NamespaceIamMemberOutput
func (NamespaceIamMember) ToNamespaceIamMemberOutputWithContext ¶ added in v4.4.0
func (i NamespaceIamMember) ToNamespaceIamMemberOutputWithContext(ctx context.Context) NamespaceIamMemberOutput
type NamespaceIamMemberArgs ¶
type NamespaceIamMemberArgs struct { Condition NamespaceIamMemberConditionPtrInput Member pulumi.StringInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 NamespaceIamMember resource.
func (NamespaceIamMemberArgs) ElementType ¶
func (NamespaceIamMemberArgs) ElementType() reflect.Type
type NamespaceIamMemberConditionArgs ¶
type NamespaceIamMemberConditionArgs struct { Description pulumi.StringPtrInput `pulumi:"description"` Expression pulumi.StringInput `pulumi:"expression"` Title pulumi.StringInput `pulumi:"title"` }
func (NamespaceIamMemberConditionArgs) ElementType ¶
func (NamespaceIamMemberConditionArgs) ElementType() reflect.Type
func (NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutput ¶
func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutput() NamespaceIamMemberConditionOutput
func (NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutputWithContext ¶
func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionOutputWithContext(ctx context.Context) NamespaceIamMemberConditionOutput
func (NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutput ¶
func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
func (NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutputWithContext ¶
func (i NamespaceIamMemberConditionArgs) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
type NamespaceIamMemberConditionInput ¶
type NamespaceIamMemberConditionInput interface { pulumi.Input ToNamespaceIamMemberConditionOutput() NamespaceIamMemberConditionOutput ToNamespaceIamMemberConditionOutputWithContext(context.Context) NamespaceIamMemberConditionOutput }
NamespaceIamMemberConditionInput is an input type that accepts NamespaceIamMemberConditionArgs and NamespaceIamMemberConditionOutput values. You can construct a concrete instance of `NamespaceIamMemberConditionInput` via:
NamespaceIamMemberConditionArgs{...}
type NamespaceIamMemberConditionOutput ¶
type NamespaceIamMemberConditionOutput struct{ *pulumi.OutputState }
func (NamespaceIamMemberConditionOutput) Description ¶
func (o NamespaceIamMemberConditionOutput) Description() pulumi.StringPtrOutput
func (NamespaceIamMemberConditionOutput) ElementType ¶
func (NamespaceIamMemberConditionOutput) ElementType() reflect.Type
func (NamespaceIamMemberConditionOutput) Expression ¶
func (o NamespaceIamMemberConditionOutput) Expression() pulumi.StringOutput
func (NamespaceIamMemberConditionOutput) Title ¶
func (o NamespaceIamMemberConditionOutput) Title() pulumi.StringOutput
func (NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutput ¶
func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutput() NamespaceIamMemberConditionOutput
func (NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutputWithContext ¶
func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionOutputWithContext(ctx context.Context) NamespaceIamMemberConditionOutput
func (NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutput ¶
func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
func (NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutputWithContext ¶
func (o NamespaceIamMemberConditionOutput) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
type NamespaceIamMemberConditionPtrInput ¶
type NamespaceIamMemberConditionPtrInput interface { pulumi.Input ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput ToNamespaceIamMemberConditionPtrOutputWithContext(context.Context) NamespaceIamMemberConditionPtrOutput }
NamespaceIamMemberConditionPtrInput is an input type that accepts NamespaceIamMemberConditionArgs, NamespaceIamMemberConditionPtr and NamespaceIamMemberConditionPtrOutput values. You can construct a concrete instance of `NamespaceIamMemberConditionPtrInput` via:
NamespaceIamMemberConditionArgs{...} or: nil
func NamespaceIamMemberConditionPtr ¶
func NamespaceIamMemberConditionPtr(v *NamespaceIamMemberConditionArgs) NamespaceIamMemberConditionPtrInput
type NamespaceIamMemberConditionPtrOutput ¶
type NamespaceIamMemberConditionPtrOutput struct{ *pulumi.OutputState }
func (NamespaceIamMemberConditionPtrOutput) Description ¶
func (o NamespaceIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput
func (NamespaceIamMemberConditionPtrOutput) ElementType ¶
func (NamespaceIamMemberConditionPtrOutput) ElementType() reflect.Type
func (NamespaceIamMemberConditionPtrOutput) Expression ¶
func (o NamespaceIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput
func (NamespaceIamMemberConditionPtrOutput) Title ¶
func (o NamespaceIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput
func (NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutput ¶
func (o NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutput() NamespaceIamMemberConditionPtrOutput
func (NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutputWithContext ¶
func (o NamespaceIamMemberConditionPtrOutput) ToNamespaceIamMemberConditionPtrOutputWithContext(ctx context.Context) NamespaceIamMemberConditionPtrOutput
type NamespaceIamMemberInput ¶ added in v4.4.0
type NamespaceIamMemberInput interface { pulumi.Input ToNamespaceIamMemberOutput() NamespaceIamMemberOutput ToNamespaceIamMemberOutputWithContext(ctx context.Context) NamespaceIamMemberOutput }
type NamespaceIamMemberOutput ¶ added in v4.4.0
type NamespaceIamMemberOutput struct {
*pulumi.OutputState
}
func (NamespaceIamMemberOutput) ElementType ¶ added in v4.4.0
func (NamespaceIamMemberOutput) ElementType() reflect.Type
func (NamespaceIamMemberOutput) ToNamespaceIamMemberOutput ¶ added in v4.4.0
func (o NamespaceIamMemberOutput) ToNamespaceIamMemberOutput() NamespaceIamMemberOutput
func (NamespaceIamMemberOutput) ToNamespaceIamMemberOutputWithContext ¶ added in v4.4.0
func (o NamespaceIamMemberOutput) ToNamespaceIamMemberOutputWithContext(ctx context.Context) NamespaceIamMemberOutput
type NamespaceIamMemberState ¶
type NamespaceIamMemberState struct { Condition NamespaceIamMemberConditionPtrInput // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput Member pulumi.StringPtrInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.NamespaceIamBinding` 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 (NamespaceIamMemberState) ElementType ¶
func (NamespaceIamMemberState) ElementType() reflect.Type
type NamespaceIamPolicy ¶
type NamespaceIamPolicy struct { pulumi.CustomResourceState // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringOutput `pulumi:"policyData"` }
Three different resources help you manage your IAM policy for Service Directory Namespace. Each of these resources serves a different use case:
* `servicedirectory.NamespaceIamPolicy`: Authoritative. Sets the IAM policy for the namespace and replaces any existing policy already attached. * `servicedirectory.NamespaceIamBinding`: 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 namespace are preserved. * `servicedirectory.NamespaceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the namespace are preserved.
> **Note:** `servicedirectory.NamespaceIamPolicy` **cannot** be used in conjunction with `servicedirectory.NamespaceIamBinding` and `servicedirectory.NamespaceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.NamespaceIamBinding` resources **can be** used in conjunction with `servicedirectory.NamespaceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_namespace\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewNamespaceIamPolicy(ctx, "policy", &servicedirectory.NamespaceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamBinding(ctx, "binding", &servicedirectory.NamespaceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_namespace\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewNamespaceIamMember(ctx, "member", &servicedirectory.NamespaceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} * {{project}}/{{location}}/{{namespace_id}} * {{location}}/{{namespace_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory namespace 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:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetNamespaceIamPolicy ¶
func GetNamespaceIamPolicy(ctx *pulumi.Context, name string, id pulumi.IDInput, state *NamespaceIamPolicyState, opts ...pulumi.ResourceOption) (*NamespaceIamPolicy, error)
GetNamespaceIamPolicy gets an existing NamespaceIamPolicy 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 NewNamespaceIamPolicy ¶
func NewNamespaceIamPolicy(ctx *pulumi.Context, name string, args *NamespaceIamPolicyArgs, opts ...pulumi.ResourceOption) (*NamespaceIamPolicy, error)
NewNamespaceIamPolicy registers a new resource with the given unique name, arguments, and options.
func (NamespaceIamPolicy) ElementType ¶ added in v4.4.0
func (NamespaceIamPolicy) ElementType() reflect.Type
func (NamespaceIamPolicy) ToNamespaceIamPolicyOutput ¶ added in v4.4.0
func (i NamespaceIamPolicy) ToNamespaceIamPolicyOutput() NamespaceIamPolicyOutput
func (NamespaceIamPolicy) ToNamespaceIamPolicyOutputWithContext ¶ added in v4.4.0
func (i NamespaceIamPolicy) ToNamespaceIamPolicyOutputWithContext(ctx context.Context) NamespaceIamPolicyOutput
type NamespaceIamPolicyArgs ¶
type NamespaceIamPolicyArgs struct { // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringInput }
The set of arguments for constructing a NamespaceIamPolicy resource.
func (NamespaceIamPolicyArgs) ElementType ¶
func (NamespaceIamPolicyArgs) ElementType() reflect.Type
type NamespaceIamPolicyInput ¶ added in v4.4.0
type NamespaceIamPolicyInput interface { pulumi.Input ToNamespaceIamPolicyOutput() NamespaceIamPolicyOutput ToNamespaceIamPolicyOutputWithContext(ctx context.Context) NamespaceIamPolicyOutput }
type NamespaceIamPolicyOutput ¶ added in v4.4.0
type NamespaceIamPolicyOutput struct {
*pulumi.OutputState
}
func (NamespaceIamPolicyOutput) ElementType ¶ added in v4.4.0
func (NamespaceIamPolicyOutput) ElementType() reflect.Type
func (NamespaceIamPolicyOutput) ToNamespaceIamPolicyOutput ¶ added in v4.4.0
func (o NamespaceIamPolicyOutput) ToNamespaceIamPolicyOutput() NamespaceIamPolicyOutput
func (NamespaceIamPolicyOutput) ToNamespaceIamPolicyOutputWithContext ¶ added in v4.4.0
func (o NamespaceIamPolicyOutput) ToNamespaceIamPolicyOutputWithContext(ctx context.Context) NamespaceIamPolicyOutput
type NamespaceIamPolicyState ¶
type NamespaceIamPolicyState struct { // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringPtrInput }
func (NamespaceIamPolicyState) ElementType ¶
func (NamespaceIamPolicyState) ElementType() reflect.Type
type NamespaceInput ¶ added in v4.4.0
type NamespaceInput interface { pulumi.Input ToNamespaceOutput() NamespaceOutput ToNamespaceOutputWithContext(ctx context.Context) NamespaceOutput }
type NamespaceOutput ¶ added in v4.4.0
type NamespaceOutput struct {
*pulumi.OutputState
}
func (NamespaceOutput) ElementType ¶ added in v4.4.0
func (NamespaceOutput) ElementType() reflect.Type
func (NamespaceOutput) ToNamespaceOutput ¶ added in v4.4.0
func (o NamespaceOutput) ToNamespaceOutput() NamespaceOutput
func (NamespaceOutput) ToNamespaceOutputWithContext ¶ added in v4.4.0
func (o NamespaceOutput) ToNamespaceOutputWithContext(ctx context.Context) NamespaceOutput
type NamespaceState ¶
type NamespaceState struct { // Resource labels associated with this Namespace. No more than 64 user // labels can be associated with a given resource. Label keys and values can // be no longer than 63 characters. Labels pulumi.StringMapInput // The location for the Namespace. // A full list of valid locations can be found by running // `gcloud beta service-directory locations list`. Location pulumi.StringPtrInput // The resource name for the namespace in the format 'projects/*/locations/*/namespaces/*'. Name pulumi.StringPtrInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. NamespaceId 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 (NamespaceState) ElementType ¶
func (NamespaceState) ElementType() reflect.Type
type Service ¶
type Service struct { pulumi.CustomResourceState // Metadata for the service. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 2000 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapOutput `pulumi:"metadata"` // The resource name for the service in the format 'projects/*/locations/*/namespaces/*/services/*'. Name pulumi.StringOutput `pulumi:"name"` // The resource name of the namespace this service will belong to. Namespace pulumi.StringOutput `pulumi:"namespace"` // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. ServiceId pulumi.StringOutput `pulumi:"serviceId"` }
An individual service. A service contains a name and optional metadata.
To get more information about Service, see:
* [API documentation](https://cloud.google.com/service-directory/docs/reference/rest/v1beta1/projects.locations.namespaces.services) * How-to Guides
- [Configuring a service](https://cloud.google.com/service-directory/docs/configuring-service-directory#configuring_a_service)
## Example Usage ### Service Directory Service Basic
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { exampleNamespace, err := servicedirectory.NewNamespace(ctx, "exampleNamespace", &servicedirectory.NamespaceArgs{ NamespaceId: pulumi.String("example-namespace"), Location: pulumi.String("us-central1"), }, pulumi.Provider(google_beta)) if err != nil { return err } _, err = servicedirectory.NewService(ctx, "exampleService", &servicedirectory.ServiceArgs{ ServiceId: pulumi.String("example-service"), Namespace: exampleNamespace.ID(), Metadata: pulumi.StringMap{ "stage": pulumi.String("prod"), "region": pulumi.String("us-central1"), }, }, pulumi.Provider(google_beta)) if err != nil { return err } return nil }) }
```
## Import
Service can be imported using any of these accepted formats ¶
```sh
$ pulumi import gcp:servicedirectory/service:Service default projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}
```
```sh
$ pulumi import gcp:servicedirectory/service:Service default {{project}}/{{location}}/{{namespace_id}}/{{service_id}}
```
```sh
$ pulumi import gcp:servicedirectory/service:Service default {{location}}/{{namespace_id}}/{{service_id}}
```
func GetService ¶
func GetService(ctx *pulumi.Context, name string, id pulumi.IDInput, state *ServiceState, opts ...pulumi.ResourceOption) (*Service, error)
GetService gets an existing Service resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewService ¶
func NewService(ctx *pulumi.Context, name string, args *ServiceArgs, opts ...pulumi.ResourceOption) (*Service, error)
NewService registers a new resource with the given unique name, arguments, and options.
func (Service) ElementType ¶ added in v4.4.0
func (Service) ToServiceOutput ¶ added in v4.4.0
func (i Service) ToServiceOutput() ServiceOutput
func (Service) ToServiceOutputWithContext ¶ added in v4.4.0
func (i Service) ToServiceOutputWithContext(ctx context.Context) ServiceOutput
type ServiceArgs ¶
type ServiceArgs struct { // Metadata for the service. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 2000 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapInput // The resource name of the namespace this service will belong to. Namespace pulumi.StringInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. ServiceId pulumi.StringInput }
The set of arguments for constructing a Service resource.
func (ServiceArgs) ElementType ¶
func (ServiceArgs) ElementType() reflect.Type
type ServiceIamBinding ¶
type ServiceIamBinding struct { pulumi.CustomResourceState Condition ServiceIamBindingConditionPtrOutput `pulumi:"condition"` // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` Members pulumi.StringArrayOutput `pulumi:"members"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringOutput `pulumi:"role"` }
Three different resources help you manage your IAM policy for Service Directory Service. Each of these resources serves a different use case:
* `servicedirectory.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `servicedirectory.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `servicedirectory.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.
> **Note:** `servicedirectory.ServiceIamPolicy` **cannot** be used in conjunction with `servicedirectory.ServiceIamBinding` and `servicedirectory.ServiceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.ServiceIamBinding` resources **can be** used in conjunction with `servicedirectory.ServiceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_service\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewServiceIamPolicy(ctx, "policy", &servicedirectory.ServiceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamBinding(ctx, "binding", &servicedirectory.ServiceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamMember(ctx, "member", &servicedirectory.ServiceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} * {{project}}/{{location}}/{{namespace_id}}/{{service_id}} * {{location}}/{{namespace_id}}/{{service_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory service 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:servicedirectory/serviceIamBinding:ServiceIamBinding editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamBinding:ServiceIamBinding editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamBinding:ServiceIamBinding editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetServiceIamBinding ¶
func GetServiceIamBinding(ctx *pulumi.Context, name string, id pulumi.IDInput, state *ServiceIamBindingState, opts ...pulumi.ResourceOption) (*ServiceIamBinding, error)
GetServiceIamBinding gets an existing ServiceIamBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewServiceIamBinding ¶
func NewServiceIamBinding(ctx *pulumi.Context, name string, args *ServiceIamBindingArgs, opts ...pulumi.ResourceOption) (*ServiceIamBinding, error)
NewServiceIamBinding registers a new resource with the given unique name, arguments, and options.
func (ServiceIamBinding) ElementType ¶ added in v4.4.0
func (ServiceIamBinding) ElementType() reflect.Type
func (ServiceIamBinding) ToServiceIamBindingOutput ¶ added in v4.4.0
func (i ServiceIamBinding) ToServiceIamBindingOutput() ServiceIamBindingOutput
func (ServiceIamBinding) ToServiceIamBindingOutputWithContext ¶ added in v4.4.0
func (i ServiceIamBinding) ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput
type ServiceIamBindingArgs ¶
type ServiceIamBindingArgs struct { Condition ServiceIamBindingConditionPtrInput Members pulumi.StringArrayInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringInput }
The set of arguments for constructing a ServiceIamBinding resource.
func (ServiceIamBindingArgs) ElementType ¶
func (ServiceIamBindingArgs) ElementType() reflect.Type
type ServiceIamBindingConditionArgs ¶
type ServiceIamBindingConditionArgs struct { Description pulumi.StringPtrInput `pulumi:"description"` Expression pulumi.StringInput `pulumi:"expression"` Title pulumi.StringInput `pulumi:"title"` }
func (ServiceIamBindingConditionArgs) ElementType ¶
func (ServiceIamBindingConditionArgs) ElementType() reflect.Type
func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutput ¶
func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput
func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutputWithContext ¶
func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput
func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutput ¶
func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
func (ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutputWithContext ¶
func (i ServiceIamBindingConditionArgs) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
type ServiceIamBindingConditionInput ¶
type ServiceIamBindingConditionInput interface { pulumi.Input ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput ToServiceIamBindingConditionOutputWithContext(context.Context) ServiceIamBindingConditionOutput }
ServiceIamBindingConditionInput is an input type that accepts ServiceIamBindingConditionArgs and ServiceIamBindingConditionOutput values. You can construct a concrete instance of `ServiceIamBindingConditionInput` via:
ServiceIamBindingConditionArgs{...}
type ServiceIamBindingConditionOutput ¶
type ServiceIamBindingConditionOutput struct{ *pulumi.OutputState }
func (ServiceIamBindingConditionOutput) Description ¶
func (o ServiceIamBindingConditionOutput) Description() pulumi.StringPtrOutput
func (ServiceIamBindingConditionOutput) ElementType ¶
func (ServiceIamBindingConditionOutput) ElementType() reflect.Type
func (ServiceIamBindingConditionOutput) Expression ¶
func (o ServiceIamBindingConditionOutput) Expression() pulumi.StringOutput
func (ServiceIamBindingConditionOutput) Title ¶
func (o ServiceIamBindingConditionOutput) Title() pulumi.StringOutput
func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutput ¶
func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutput() ServiceIamBindingConditionOutput
func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutputWithContext ¶
func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionOutputWithContext(ctx context.Context) ServiceIamBindingConditionOutput
func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutput ¶
func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
func (ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutputWithContext ¶
func (o ServiceIamBindingConditionOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
type ServiceIamBindingConditionPtrInput ¶
type ServiceIamBindingConditionPtrInput interface { pulumi.Input ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput ToServiceIamBindingConditionPtrOutputWithContext(context.Context) ServiceIamBindingConditionPtrOutput }
ServiceIamBindingConditionPtrInput is an input type that accepts ServiceIamBindingConditionArgs, ServiceIamBindingConditionPtr and ServiceIamBindingConditionPtrOutput values. You can construct a concrete instance of `ServiceIamBindingConditionPtrInput` via:
ServiceIamBindingConditionArgs{...} or: nil
func ServiceIamBindingConditionPtr ¶
func ServiceIamBindingConditionPtr(v *ServiceIamBindingConditionArgs) ServiceIamBindingConditionPtrInput
type ServiceIamBindingConditionPtrOutput ¶
type ServiceIamBindingConditionPtrOutput struct{ *pulumi.OutputState }
func (ServiceIamBindingConditionPtrOutput) Description ¶
func (o ServiceIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput
func (ServiceIamBindingConditionPtrOutput) Elem ¶
func (o ServiceIamBindingConditionPtrOutput) Elem() ServiceIamBindingConditionOutput
func (ServiceIamBindingConditionPtrOutput) ElementType ¶
func (ServiceIamBindingConditionPtrOutput) ElementType() reflect.Type
func (ServiceIamBindingConditionPtrOutput) Expression ¶
func (o ServiceIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput
func (ServiceIamBindingConditionPtrOutput) Title ¶
func (o ServiceIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput
func (ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutput ¶
func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutput() ServiceIamBindingConditionPtrOutput
func (ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutputWithContext ¶
func (o ServiceIamBindingConditionPtrOutput) ToServiceIamBindingConditionPtrOutputWithContext(ctx context.Context) ServiceIamBindingConditionPtrOutput
type ServiceIamBindingInput ¶ added in v4.4.0
type ServiceIamBindingInput interface { pulumi.Input ToServiceIamBindingOutput() ServiceIamBindingOutput ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput }
type ServiceIamBindingOutput ¶ added in v4.4.0
type ServiceIamBindingOutput struct {
*pulumi.OutputState
}
func (ServiceIamBindingOutput) ElementType ¶ added in v4.4.0
func (ServiceIamBindingOutput) ElementType() reflect.Type
func (ServiceIamBindingOutput) ToServiceIamBindingOutput ¶ added in v4.4.0
func (o ServiceIamBindingOutput) ToServiceIamBindingOutput() ServiceIamBindingOutput
func (ServiceIamBindingOutput) ToServiceIamBindingOutputWithContext ¶ added in v4.4.0
func (o ServiceIamBindingOutput) ToServiceIamBindingOutputWithContext(ctx context.Context) ServiceIamBindingOutput
type ServiceIamBindingState ¶
type ServiceIamBindingState struct { Condition ServiceIamBindingConditionPtrInput // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput Members pulumi.StringArrayInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringPtrInput }
func (ServiceIamBindingState) ElementType ¶
func (ServiceIamBindingState) ElementType() reflect.Type
type ServiceIamMember ¶
type ServiceIamMember struct { pulumi.CustomResourceState Condition ServiceIamMemberConditionPtrOutput `pulumi:"condition"` // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` Member pulumi.StringOutput `pulumi:"member"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringOutput `pulumi:"role"` }
Three different resources help you manage your IAM policy for Service Directory Service. Each of these resources serves a different use case:
* `servicedirectory.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `servicedirectory.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `servicedirectory.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.
> **Note:** `servicedirectory.ServiceIamPolicy` **cannot** be used in conjunction with `servicedirectory.ServiceIamBinding` and `servicedirectory.ServiceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.ServiceIamBinding` resources **can be** used in conjunction with `servicedirectory.ServiceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_service\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewServiceIamPolicy(ctx, "policy", &servicedirectory.ServiceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamBinding(ctx, "binding", &servicedirectory.ServiceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamMember(ctx, "member", &servicedirectory.ServiceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} * {{project}}/{{location}}/{{namespace_id}}/{{service_id}} * {{location}}/{{namespace_id}}/{{service_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory service 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:servicedirectory/serviceIamMember:ServiceIamMember editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamMember:ServiceIamMember editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamMember:ServiceIamMember editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetServiceIamMember ¶
func GetServiceIamMember(ctx *pulumi.Context, name string, id pulumi.IDInput, state *ServiceIamMemberState, opts ...pulumi.ResourceOption) (*ServiceIamMember, error)
GetServiceIamMember gets an existing ServiceIamMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewServiceIamMember ¶
func NewServiceIamMember(ctx *pulumi.Context, name string, args *ServiceIamMemberArgs, opts ...pulumi.ResourceOption) (*ServiceIamMember, error)
NewServiceIamMember registers a new resource with the given unique name, arguments, and options.
func (ServiceIamMember) ElementType ¶ added in v4.4.0
func (ServiceIamMember) ElementType() reflect.Type
func (ServiceIamMember) ToServiceIamMemberOutput ¶ added in v4.4.0
func (i ServiceIamMember) ToServiceIamMemberOutput() ServiceIamMemberOutput
func (ServiceIamMember) ToServiceIamMemberOutputWithContext ¶ added in v4.4.0
func (i ServiceIamMember) ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput
type ServiceIamMemberArgs ¶
type ServiceIamMemberArgs struct { Condition ServiceIamMemberConditionPtrInput Member pulumi.StringInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringInput }
The set of arguments for constructing a ServiceIamMember resource.
func (ServiceIamMemberArgs) ElementType ¶
func (ServiceIamMemberArgs) ElementType() reflect.Type
type ServiceIamMemberConditionArgs ¶
type ServiceIamMemberConditionArgs struct { Description pulumi.StringPtrInput `pulumi:"description"` Expression pulumi.StringInput `pulumi:"expression"` Title pulumi.StringInput `pulumi:"title"` }
func (ServiceIamMemberConditionArgs) ElementType ¶
func (ServiceIamMemberConditionArgs) ElementType() reflect.Type
func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutput ¶
func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput
func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutputWithContext ¶
func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput
func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutput ¶
func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
func (ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutputWithContext ¶
func (i ServiceIamMemberConditionArgs) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
type ServiceIamMemberConditionInput ¶
type ServiceIamMemberConditionInput interface { pulumi.Input ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput ToServiceIamMemberConditionOutputWithContext(context.Context) ServiceIamMemberConditionOutput }
ServiceIamMemberConditionInput is an input type that accepts ServiceIamMemberConditionArgs and ServiceIamMemberConditionOutput values. You can construct a concrete instance of `ServiceIamMemberConditionInput` via:
ServiceIamMemberConditionArgs{...}
type ServiceIamMemberConditionOutput ¶
type ServiceIamMemberConditionOutput struct{ *pulumi.OutputState }
func (ServiceIamMemberConditionOutput) Description ¶
func (o ServiceIamMemberConditionOutput) Description() pulumi.StringPtrOutput
func (ServiceIamMemberConditionOutput) ElementType ¶
func (ServiceIamMemberConditionOutput) ElementType() reflect.Type
func (ServiceIamMemberConditionOutput) Expression ¶
func (o ServiceIamMemberConditionOutput) Expression() pulumi.StringOutput
func (ServiceIamMemberConditionOutput) Title ¶
func (o ServiceIamMemberConditionOutput) Title() pulumi.StringOutput
func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutput ¶
func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutput() ServiceIamMemberConditionOutput
func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutputWithContext ¶
func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionOutputWithContext(ctx context.Context) ServiceIamMemberConditionOutput
func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutput ¶
func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
func (ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutputWithContext ¶
func (o ServiceIamMemberConditionOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
type ServiceIamMemberConditionPtrInput ¶
type ServiceIamMemberConditionPtrInput interface { pulumi.Input ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput ToServiceIamMemberConditionPtrOutputWithContext(context.Context) ServiceIamMemberConditionPtrOutput }
ServiceIamMemberConditionPtrInput is an input type that accepts ServiceIamMemberConditionArgs, ServiceIamMemberConditionPtr and ServiceIamMemberConditionPtrOutput values. You can construct a concrete instance of `ServiceIamMemberConditionPtrInput` via:
ServiceIamMemberConditionArgs{...} or: nil
func ServiceIamMemberConditionPtr ¶
func ServiceIamMemberConditionPtr(v *ServiceIamMemberConditionArgs) ServiceIamMemberConditionPtrInput
type ServiceIamMemberConditionPtrOutput ¶
type ServiceIamMemberConditionPtrOutput struct{ *pulumi.OutputState }
func (ServiceIamMemberConditionPtrOutput) Description ¶
func (o ServiceIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput
func (ServiceIamMemberConditionPtrOutput) Elem ¶
func (o ServiceIamMemberConditionPtrOutput) Elem() ServiceIamMemberConditionOutput
func (ServiceIamMemberConditionPtrOutput) ElementType ¶
func (ServiceIamMemberConditionPtrOutput) ElementType() reflect.Type
func (ServiceIamMemberConditionPtrOutput) Expression ¶
func (o ServiceIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput
func (ServiceIamMemberConditionPtrOutput) Title ¶
func (o ServiceIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput
func (ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutput ¶
func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutput() ServiceIamMemberConditionPtrOutput
func (ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutputWithContext ¶
func (o ServiceIamMemberConditionPtrOutput) ToServiceIamMemberConditionPtrOutputWithContext(ctx context.Context) ServiceIamMemberConditionPtrOutput
type ServiceIamMemberInput ¶ added in v4.4.0
type ServiceIamMemberInput interface { pulumi.Input ToServiceIamMemberOutput() ServiceIamMemberOutput ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput }
type ServiceIamMemberOutput ¶ added in v4.4.0
type ServiceIamMemberOutput struct {
*pulumi.OutputState
}
func (ServiceIamMemberOutput) ElementType ¶ added in v4.4.0
func (ServiceIamMemberOutput) ElementType() reflect.Type
func (ServiceIamMemberOutput) ToServiceIamMemberOutput ¶ added in v4.4.0
func (o ServiceIamMemberOutput) ToServiceIamMemberOutput() ServiceIamMemberOutput
func (ServiceIamMemberOutput) ToServiceIamMemberOutputWithContext ¶ added in v4.4.0
func (o ServiceIamMemberOutput) ToServiceIamMemberOutputWithContext(ctx context.Context) ServiceIamMemberOutput
type ServiceIamMemberState ¶
type ServiceIamMemberState struct { Condition ServiceIamMemberConditionPtrInput // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput Member pulumi.StringPtrInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The role that should be applied. Only one // `servicedirectory.ServiceIamBinding` can be used per role. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role pulumi.StringPtrInput }
func (ServiceIamMemberState) ElementType ¶
func (ServiceIamMemberState) ElementType() reflect.Type
type ServiceIamPolicy ¶
type ServiceIamPolicy struct { pulumi.CustomResourceState // (Computed) The etag of the IAM policy. Etag pulumi.StringOutput `pulumi:"etag"` // Used to find the parent resource to bind the IAM policy to Name pulumi.StringOutput `pulumi:"name"` // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringOutput `pulumi:"policyData"` }
Three different resources help you manage your IAM policy for Service Directory Service. Each of these resources serves a different use case:
* `servicedirectory.ServiceIamPolicy`: Authoritative. Sets the IAM policy for the service and replaces any existing policy already attached. * `servicedirectory.ServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service are preserved. * `servicedirectory.ServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the service are preserved.
> **Note:** `servicedirectory.ServiceIamPolicy` **cannot** be used in conjunction with `servicedirectory.ServiceIamBinding` and `servicedirectory.ServiceIamMember` or they will fight over what your policy should be.
> **Note:** `servicedirectory.ServiceIamBinding` resources **can be** used in conjunction with `servicedirectory.ServiceIamMember` resources **only if** they do not grant privilege to the same role.
## google\_service\_directory\_service\_iam\_policy
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations" "github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{ Bindings: []organizations.GetIAMPolicyBinding{ organizations.GetIAMPolicyBinding{ Role: "roles/viewer", Members: []string{ "user:jane@example.com", }, }, }, }, nil) if err != nil { return err } _, err = servicedirectory.NewServiceIamPolicy(ctx, "policy", &servicedirectory.ServiceIamPolicyArgs{ PolicyData: pulumi.String(admin.PolicyData), }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_binding
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamBinding(ctx, "binding", &servicedirectory.ServiceIamBindingArgs{ Role: pulumi.String("roles/viewer"), Members: pulumi.StringArray{ pulumi.String("user:jane@example.com"), }, }) if err != nil { return err } return nil }) }
```
## google\_service\_directory\_service\_iam\_member
```go package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/servicedirectory" "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() { pulumi.Run(func(ctx *pulumi.Context) error { _, err := servicedirectory.NewServiceIamMember(ctx, "member", &servicedirectory.ServiceIamMemberArgs{ Role: pulumi.String("roles/viewer"), Member: pulumi.String("user:jane@example.com"), }) if err != nil { return err } return nil }) }
```
## Import
For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} * {{project}}/{{location}}/{{namespace_id}}/{{service_id}} * {{location}}/{{namespace_id}}/{{service_id}} Any variables not passed in the import command will be taken from the provider configuration. Service Directory service 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:servicedirectory/serviceIamPolicy:ServiceIamPolicy editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer user:jane@example.com"
```
IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamPolicy:ServiceIamPolicy editor "projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}} roles/viewer"
```
IAM policy imports use the identifier of the resource in question, e.g.
```sh
$ pulumi import gcp:servicedirectory/serviceIamPolicy:ServiceIamPolicy editor projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}
```
-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
func GetServiceIamPolicy ¶
func GetServiceIamPolicy(ctx *pulumi.Context, name string, id pulumi.IDInput, state *ServiceIamPolicyState, opts ...pulumi.ResourceOption) (*ServiceIamPolicy, error)
GetServiceIamPolicy gets an existing ServiceIamPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewServiceIamPolicy ¶
func NewServiceIamPolicy(ctx *pulumi.Context, name string, args *ServiceIamPolicyArgs, opts ...pulumi.ResourceOption) (*ServiceIamPolicy, error)
NewServiceIamPolicy registers a new resource with the given unique name, arguments, and options.
func (ServiceIamPolicy) ElementType ¶ added in v4.4.0
func (ServiceIamPolicy) ElementType() reflect.Type
func (ServiceIamPolicy) ToServiceIamPolicyOutput ¶ added in v4.4.0
func (i ServiceIamPolicy) ToServiceIamPolicyOutput() ServiceIamPolicyOutput
func (ServiceIamPolicy) ToServiceIamPolicyOutputWithContext ¶ added in v4.4.0
func (i ServiceIamPolicy) ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput
type ServiceIamPolicyArgs ¶
type ServiceIamPolicyArgs struct { // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringInput }
The set of arguments for constructing a ServiceIamPolicy resource.
func (ServiceIamPolicyArgs) ElementType ¶
func (ServiceIamPolicyArgs) ElementType() reflect.Type
type ServiceIamPolicyInput ¶ added in v4.4.0
type ServiceIamPolicyInput interface { pulumi.Input ToServiceIamPolicyOutput() ServiceIamPolicyOutput ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput }
type ServiceIamPolicyOutput ¶ added in v4.4.0
type ServiceIamPolicyOutput struct {
*pulumi.OutputState
}
func (ServiceIamPolicyOutput) ElementType ¶ added in v4.4.0
func (ServiceIamPolicyOutput) ElementType() reflect.Type
func (ServiceIamPolicyOutput) ToServiceIamPolicyOutput ¶ added in v4.4.0
func (o ServiceIamPolicyOutput) ToServiceIamPolicyOutput() ServiceIamPolicyOutput
func (ServiceIamPolicyOutput) ToServiceIamPolicyOutputWithContext ¶ added in v4.4.0
func (o ServiceIamPolicyOutput) ToServiceIamPolicyOutputWithContext(ctx context.Context) ServiceIamPolicyOutput
type ServiceIamPolicyState ¶
type ServiceIamPolicyState struct { // (Computed) The etag of the IAM policy. Etag pulumi.StringPtrInput // Used to find the parent resource to bind the IAM policy to Name pulumi.StringPtrInput // The policy data generated by // a `organizations.getIAMPolicy` data source. PolicyData pulumi.StringPtrInput }
func (ServiceIamPolicyState) ElementType ¶
func (ServiceIamPolicyState) ElementType() reflect.Type
type ServiceInput ¶ added in v4.4.0
type ServiceInput interface { pulumi.Input ToServiceOutput() ServiceOutput ToServiceOutputWithContext(ctx context.Context) ServiceOutput }
type ServiceOutput ¶ added in v4.4.0
type ServiceOutput struct {
*pulumi.OutputState
}
func (ServiceOutput) ElementType ¶ added in v4.4.0
func (ServiceOutput) ElementType() reflect.Type
func (ServiceOutput) ToServiceOutput ¶ added in v4.4.0
func (o ServiceOutput) ToServiceOutput() ServiceOutput
func (ServiceOutput) ToServiceOutputWithContext ¶ added in v4.4.0
func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOutput
type ServiceState ¶
type ServiceState struct { // Metadata for the service. This data can be consumed // by service clients. The entire metadata dictionary may contain // up to 2000 characters, spread across all key-value pairs. // Metadata that goes beyond any these limits will be rejected. Metadata pulumi.StringMapInput // The resource name for the service in the format 'projects/*/locations/*/namespaces/*/services/*'. Name pulumi.StringPtrInput // The resource name of the namespace this service will belong to. Namespace pulumi.StringPtrInput // The Resource ID must be 1-63 characters long, including digits, // lowercase letters or the hyphen character. ServiceId pulumi.StringPtrInput }
func (ServiceState) ElementType ¶
func (ServiceState) ElementType() reflect.Type