billing

package
v7.20.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountIamBinding

type AccountIamBinding struct {
	pulumi.CustomResourceState

	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringOutput                 `pulumi:"billingAccountId"`
	Condition        AccountIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage IAM policies on billing accounts. Each of these resources serves a different use case:

* `billing.AccountIamPolicy`: Authoritative. Sets the IAM policy for the billing accounts and replaces any existing policy already attached. * `billing.AccountIamBinding`: 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 table are preserved. * `billing.AccountIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the billing accounts are preserved.

> **Note:** `billing.AccountIamPolicy` **cannot** be used in conjunction with `billing.AccountIamBinding` and `billing.AccountIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the billing account as `billing.AccountIamPolicy` replaces the entire policy.

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

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the `billing_account_id` identifier of the Billing Account resource only. For example:

* `{{billing_account_id}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{billing_account_id}}

to = google_billing_account_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:billing/accountIamBinding:AccountIamBinding default {{billing_account_id}} ```

func GetAccountIamBinding

func GetAccountIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountIamBindingState, opts ...pulumi.ResourceOption) (*AccountIamBinding, error)

GetAccountIamBinding gets an existing AccountIamBinding 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 NewAccountIamBinding

func NewAccountIamBinding(ctx *pulumi.Context,
	name string, args *AccountIamBindingArgs, opts ...pulumi.ResourceOption) (*AccountIamBinding, error)

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

func (*AccountIamBinding) ElementType

func (*AccountIamBinding) ElementType() reflect.Type

func (*AccountIamBinding) ToAccountIamBindingOutput

func (i *AccountIamBinding) ToAccountIamBindingOutput() AccountIamBindingOutput

func (*AccountIamBinding) ToAccountIamBindingOutputWithContext

func (i *AccountIamBinding) ToAccountIamBindingOutputWithContext(ctx context.Context) AccountIamBindingOutput

type AccountIamBindingArgs

type AccountIamBindingArgs struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringInput
	Condition        AccountIamBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringInput
}

The set of arguments for constructing a AccountIamBinding resource.

func (AccountIamBindingArgs) ElementType

func (AccountIamBindingArgs) ElementType() reflect.Type

type AccountIamBindingArray

type AccountIamBindingArray []AccountIamBindingInput

func (AccountIamBindingArray) ElementType

func (AccountIamBindingArray) ElementType() reflect.Type

func (AccountIamBindingArray) ToAccountIamBindingArrayOutput

func (i AccountIamBindingArray) ToAccountIamBindingArrayOutput() AccountIamBindingArrayOutput

func (AccountIamBindingArray) ToAccountIamBindingArrayOutputWithContext

func (i AccountIamBindingArray) ToAccountIamBindingArrayOutputWithContext(ctx context.Context) AccountIamBindingArrayOutput

type AccountIamBindingArrayInput

type AccountIamBindingArrayInput interface {
	pulumi.Input

	ToAccountIamBindingArrayOutput() AccountIamBindingArrayOutput
	ToAccountIamBindingArrayOutputWithContext(context.Context) AccountIamBindingArrayOutput
}

AccountIamBindingArrayInput is an input type that accepts AccountIamBindingArray and AccountIamBindingArrayOutput values. You can construct a concrete instance of `AccountIamBindingArrayInput` via:

AccountIamBindingArray{ AccountIamBindingArgs{...} }

type AccountIamBindingArrayOutput

type AccountIamBindingArrayOutput struct{ *pulumi.OutputState }

func (AccountIamBindingArrayOutput) ElementType

func (AccountIamBindingArrayOutput) Index

func (AccountIamBindingArrayOutput) ToAccountIamBindingArrayOutput

func (o AccountIamBindingArrayOutput) ToAccountIamBindingArrayOutput() AccountIamBindingArrayOutput

func (AccountIamBindingArrayOutput) ToAccountIamBindingArrayOutputWithContext

func (o AccountIamBindingArrayOutput) ToAccountIamBindingArrayOutputWithContext(ctx context.Context) AccountIamBindingArrayOutput

type AccountIamBindingCondition

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

type AccountIamBindingConditionArgs

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

func (AccountIamBindingConditionArgs) ElementType

func (AccountIamBindingConditionArgs) ToAccountIamBindingConditionOutput

func (i AccountIamBindingConditionArgs) ToAccountIamBindingConditionOutput() AccountIamBindingConditionOutput

func (AccountIamBindingConditionArgs) ToAccountIamBindingConditionOutputWithContext

func (i AccountIamBindingConditionArgs) ToAccountIamBindingConditionOutputWithContext(ctx context.Context) AccountIamBindingConditionOutput

func (AccountIamBindingConditionArgs) ToAccountIamBindingConditionPtrOutput

func (i AccountIamBindingConditionArgs) ToAccountIamBindingConditionPtrOutput() AccountIamBindingConditionPtrOutput

func (AccountIamBindingConditionArgs) ToAccountIamBindingConditionPtrOutputWithContext

func (i AccountIamBindingConditionArgs) ToAccountIamBindingConditionPtrOutputWithContext(ctx context.Context) AccountIamBindingConditionPtrOutput

type AccountIamBindingConditionInput

type AccountIamBindingConditionInput interface {
	pulumi.Input

	ToAccountIamBindingConditionOutput() AccountIamBindingConditionOutput
	ToAccountIamBindingConditionOutputWithContext(context.Context) AccountIamBindingConditionOutput
}

AccountIamBindingConditionInput is an input type that accepts AccountIamBindingConditionArgs and AccountIamBindingConditionOutput values. You can construct a concrete instance of `AccountIamBindingConditionInput` via:

AccountIamBindingConditionArgs{...}

type AccountIamBindingConditionOutput

type AccountIamBindingConditionOutput struct{ *pulumi.OutputState }

func (AccountIamBindingConditionOutput) Description

func (AccountIamBindingConditionOutput) ElementType

func (AccountIamBindingConditionOutput) Expression

func (AccountIamBindingConditionOutput) Title

func (AccountIamBindingConditionOutput) ToAccountIamBindingConditionOutput

func (o AccountIamBindingConditionOutput) ToAccountIamBindingConditionOutput() AccountIamBindingConditionOutput

func (AccountIamBindingConditionOutput) ToAccountIamBindingConditionOutputWithContext

func (o AccountIamBindingConditionOutput) ToAccountIamBindingConditionOutputWithContext(ctx context.Context) AccountIamBindingConditionOutput

func (AccountIamBindingConditionOutput) ToAccountIamBindingConditionPtrOutput

func (o AccountIamBindingConditionOutput) ToAccountIamBindingConditionPtrOutput() AccountIamBindingConditionPtrOutput

func (AccountIamBindingConditionOutput) ToAccountIamBindingConditionPtrOutputWithContext

func (o AccountIamBindingConditionOutput) ToAccountIamBindingConditionPtrOutputWithContext(ctx context.Context) AccountIamBindingConditionPtrOutput

type AccountIamBindingConditionPtrInput

type AccountIamBindingConditionPtrInput interface {
	pulumi.Input

	ToAccountIamBindingConditionPtrOutput() AccountIamBindingConditionPtrOutput
	ToAccountIamBindingConditionPtrOutputWithContext(context.Context) AccountIamBindingConditionPtrOutput
}

AccountIamBindingConditionPtrInput is an input type that accepts AccountIamBindingConditionArgs, AccountIamBindingConditionPtr and AccountIamBindingConditionPtrOutput values. You can construct a concrete instance of `AccountIamBindingConditionPtrInput` via:

        AccountIamBindingConditionArgs{...}

or:

        nil

type AccountIamBindingConditionPtrOutput

type AccountIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (AccountIamBindingConditionPtrOutput) Description

func (AccountIamBindingConditionPtrOutput) Elem

func (AccountIamBindingConditionPtrOutput) ElementType

func (AccountIamBindingConditionPtrOutput) Expression

func (AccountIamBindingConditionPtrOutput) Title

func (AccountIamBindingConditionPtrOutput) ToAccountIamBindingConditionPtrOutput

func (o AccountIamBindingConditionPtrOutput) ToAccountIamBindingConditionPtrOutput() AccountIamBindingConditionPtrOutput

func (AccountIamBindingConditionPtrOutput) ToAccountIamBindingConditionPtrOutputWithContext

func (o AccountIamBindingConditionPtrOutput) ToAccountIamBindingConditionPtrOutputWithContext(ctx context.Context) AccountIamBindingConditionPtrOutput

type AccountIamBindingInput

type AccountIamBindingInput interface {
	pulumi.Input

	ToAccountIamBindingOutput() AccountIamBindingOutput
	ToAccountIamBindingOutputWithContext(ctx context.Context) AccountIamBindingOutput
}

type AccountIamBindingMap

type AccountIamBindingMap map[string]AccountIamBindingInput

func (AccountIamBindingMap) ElementType

func (AccountIamBindingMap) ElementType() reflect.Type

func (AccountIamBindingMap) ToAccountIamBindingMapOutput

func (i AccountIamBindingMap) ToAccountIamBindingMapOutput() AccountIamBindingMapOutput

func (AccountIamBindingMap) ToAccountIamBindingMapOutputWithContext

func (i AccountIamBindingMap) ToAccountIamBindingMapOutputWithContext(ctx context.Context) AccountIamBindingMapOutput

type AccountIamBindingMapInput

type AccountIamBindingMapInput interface {
	pulumi.Input

	ToAccountIamBindingMapOutput() AccountIamBindingMapOutput
	ToAccountIamBindingMapOutputWithContext(context.Context) AccountIamBindingMapOutput
}

AccountIamBindingMapInput is an input type that accepts AccountIamBindingMap and AccountIamBindingMapOutput values. You can construct a concrete instance of `AccountIamBindingMapInput` via:

AccountIamBindingMap{ "key": AccountIamBindingArgs{...} }

type AccountIamBindingMapOutput

type AccountIamBindingMapOutput struct{ *pulumi.OutputState }

func (AccountIamBindingMapOutput) ElementType

func (AccountIamBindingMapOutput) ElementType() reflect.Type

func (AccountIamBindingMapOutput) MapIndex

func (AccountIamBindingMapOutput) ToAccountIamBindingMapOutput

func (o AccountIamBindingMapOutput) ToAccountIamBindingMapOutput() AccountIamBindingMapOutput

func (AccountIamBindingMapOutput) ToAccountIamBindingMapOutputWithContext

func (o AccountIamBindingMapOutput) ToAccountIamBindingMapOutputWithContext(ctx context.Context) AccountIamBindingMapOutput

type AccountIamBindingOutput

type AccountIamBindingOutput struct{ *pulumi.OutputState }

func (AccountIamBindingOutput) BillingAccountId

func (o AccountIamBindingOutput) BillingAccountId() pulumi.StringOutput

The billing account id.

For `billing.AccountIamMember` or `billing.AccountIamBinding`:

func (AccountIamBindingOutput) Condition

func (AccountIamBindingOutput) ElementType

func (AccountIamBindingOutput) ElementType() reflect.Type

func (AccountIamBindingOutput) Etag

(Computed) The etag of the billing account's IAM policy.

func (AccountIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (AccountIamBindingOutput) Role

The role that should be applied. Only one `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).

`billing.AccountIamPolicy` only:

func (AccountIamBindingOutput) ToAccountIamBindingOutput

func (o AccountIamBindingOutput) ToAccountIamBindingOutput() AccountIamBindingOutput

func (AccountIamBindingOutput) ToAccountIamBindingOutputWithContext

func (o AccountIamBindingOutput) ToAccountIamBindingOutputWithContext(ctx context.Context) AccountIamBindingOutput

type AccountIamBindingState

type AccountIamBindingState struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringPtrInput
	Condition        AccountIamBindingConditionPtrInput
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringPtrInput
}

func (AccountIamBindingState) ElementType

func (AccountIamBindingState) ElementType() reflect.Type

type AccountIamMember

type AccountIamMember struct {
	pulumi.CustomResourceState

	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringOutput                `pulumi:"billingAccountId"`
	Condition        AccountIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage IAM policies on billing accounts. Each of these resources serves a different use case:

* `billing.AccountIamPolicy`: Authoritative. Sets the IAM policy for the billing accounts and replaces any existing policy already attached. * `billing.AccountIamBinding`: 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 table are preserved. * `billing.AccountIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the billing accounts are preserved.

> **Note:** `billing.AccountIamPolicy` **cannot** be used in conjunction with `billing.AccountIamBinding` and `billing.AccountIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the billing account as `billing.AccountIamPolicy` replaces the entire policy.

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

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the `billing_account_id` identifier of the Billing Account resource only. For example:

* `{{billing_account_id}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{billing_account_id}}

to = google_billing_account_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:billing/accountIamMember:AccountIamMember default {{billing_account_id}} ```

func GetAccountIamMember

func GetAccountIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountIamMemberState, opts ...pulumi.ResourceOption) (*AccountIamMember, error)

GetAccountIamMember gets an existing AccountIamMember 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 NewAccountIamMember

func NewAccountIamMember(ctx *pulumi.Context,
	name string, args *AccountIamMemberArgs, opts ...pulumi.ResourceOption) (*AccountIamMember, error)

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

func (*AccountIamMember) ElementType

func (*AccountIamMember) ElementType() reflect.Type

func (*AccountIamMember) ToAccountIamMemberOutput

func (i *AccountIamMember) ToAccountIamMemberOutput() AccountIamMemberOutput

func (*AccountIamMember) ToAccountIamMemberOutputWithContext

func (i *AccountIamMember) ToAccountIamMemberOutputWithContext(ctx context.Context) AccountIamMemberOutput

type AccountIamMemberArgs

type AccountIamMemberArgs struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringInput
	Condition        AccountIamMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Member pulumi.StringInput
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringInput
}

The set of arguments for constructing a AccountIamMember resource.

func (AccountIamMemberArgs) ElementType

func (AccountIamMemberArgs) ElementType() reflect.Type

type AccountIamMemberArray

type AccountIamMemberArray []AccountIamMemberInput

func (AccountIamMemberArray) ElementType

func (AccountIamMemberArray) ElementType() reflect.Type

func (AccountIamMemberArray) ToAccountIamMemberArrayOutput

func (i AccountIamMemberArray) ToAccountIamMemberArrayOutput() AccountIamMemberArrayOutput

func (AccountIamMemberArray) ToAccountIamMemberArrayOutputWithContext

func (i AccountIamMemberArray) ToAccountIamMemberArrayOutputWithContext(ctx context.Context) AccountIamMemberArrayOutput

type AccountIamMemberArrayInput

type AccountIamMemberArrayInput interface {
	pulumi.Input

	ToAccountIamMemberArrayOutput() AccountIamMemberArrayOutput
	ToAccountIamMemberArrayOutputWithContext(context.Context) AccountIamMemberArrayOutput
}

AccountIamMemberArrayInput is an input type that accepts AccountIamMemberArray and AccountIamMemberArrayOutput values. You can construct a concrete instance of `AccountIamMemberArrayInput` via:

AccountIamMemberArray{ AccountIamMemberArgs{...} }

type AccountIamMemberArrayOutput

type AccountIamMemberArrayOutput struct{ *pulumi.OutputState }

func (AccountIamMemberArrayOutput) ElementType

func (AccountIamMemberArrayOutput) Index

func (AccountIamMemberArrayOutput) ToAccountIamMemberArrayOutput

func (o AccountIamMemberArrayOutput) ToAccountIamMemberArrayOutput() AccountIamMemberArrayOutput

func (AccountIamMemberArrayOutput) ToAccountIamMemberArrayOutputWithContext

func (o AccountIamMemberArrayOutput) ToAccountIamMemberArrayOutputWithContext(ctx context.Context) AccountIamMemberArrayOutput

type AccountIamMemberCondition

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

type AccountIamMemberConditionArgs

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

func (AccountIamMemberConditionArgs) ElementType

func (AccountIamMemberConditionArgs) ToAccountIamMemberConditionOutput

func (i AccountIamMemberConditionArgs) ToAccountIamMemberConditionOutput() AccountIamMemberConditionOutput

func (AccountIamMemberConditionArgs) ToAccountIamMemberConditionOutputWithContext

func (i AccountIamMemberConditionArgs) ToAccountIamMemberConditionOutputWithContext(ctx context.Context) AccountIamMemberConditionOutput

func (AccountIamMemberConditionArgs) ToAccountIamMemberConditionPtrOutput

func (i AccountIamMemberConditionArgs) ToAccountIamMemberConditionPtrOutput() AccountIamMemberConditionPtrOutput

func (AccountIamMemberConditionArgs) ToAccountIamMemberConditionPtrOutputWithContext

func (i AccountIamMemberConditionArgs) ToAccountIamMemberConditionPtrOutputWithContext(ctx context.Context) AccountIamMemberConditionPtrOutput

type AccountIamMemberConditionInput

type AccountIamMemberConditionInput interface {
	pulumi.Input

	ToAccountIamMemberConditionOutput() AccountIamMemberConditionOutput
	ToAccountIamMemberConditionOutputWithContext(context.Context) AccountIamMemberConditionOutput
}

AccountIamMemberConditionInput is an input type that accepts AccountIamMemberConditionArgs and AccountIamMemberConditionOutput values. You can construct a concrete instance of `AccountIamMemberConditionInput` via:

AccountIamMemberConditionArgs{...}

type AccountIamMemberConditionOutput

type AccountIamMemberConditionOutput struct{ *pulumi.OutputState }

func (AccountIamMemberConditionOutput) Description

func (AccountIamMemberConditionOutput) ElementType

func (AccountIamMemberConditionOutput) Expression

func (AccountIamMemberConditionOutput) Title

func (AccountIamMemberConditionOutput) ToAccountIamMemberConditionOutput

func (o AccountIamMemberConditionOutput) ToAccountIamMemberConditionOutput() AccountIamMemberConditionOutput

func (AccountIamMemberConditionOutput) ToAccountIamMemberConditionOutputWithContext

func (o AccountIamMemberConditionOutput) ToAccountIamMemberConditionOutputWithContext(ctx context.Context) AccountIamMemberConditionOutput

func (AccountIamMemberConditionOutput) ToAccountIamMemberConditionPtrOutput

func (o AccountIamMemberConditionOutput) ToAccountIamMemberConditionPtrOutput() AccountIamMemberConditionPtrOutput

func (AccountIamMemberConditionOutput) ToAccountIamMemberConditionPtrOutputWithContext

func (o AccountIamMemberConditionOutput) ToAccountIamMemberConditionPtrOutputWithContext(ctx context.Context) AccountIamMemberConditionPtrOutput

type AccountIamMemberConditionPtrInput

type AccountIamMemberConditionPtrInput interface {
	pulumi.Input

	ToAccountIamMemberConditionPtrOutput() AccountIamMemberConditionPtrOutput
	ToAccountIamMemberConditionPtrOutputWithContext(context.Context) AccountIamMemberConditionPtrOutput
}

AccountIamMemberConditionPtrInput is an input type that accepts AccountIamMemberConditionArgs, AccountIamMemberConditionPtr and AccountIamMemberConditionPtrOutput values. You can construct a concrete instance of `AccountIamMemberConditionPtrInput` via:

        AccountIamMemberConditionArgs{...}

or:

        nil

type AccountIamMemberConditionPtrOutput

type AccountIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (AccountIamMemberConditionPtrOutput) Description

func (AccountIamMemberConditionPtrOutput) Elem

func (AccountIamMemberConditionPtrOutput) ElementType

func (AccountIamMemberConditionPtrOutput) Expression

func (AccountIamMemberConditionPtrOutput) Title

func (AccountIamMemberConditionPtrOutput) ToAccountIamMemberConditionPtrOutput

func (o AccountIamMemberConditionPtrOutput) ToAccountIamMemberConditionPtrOutput() AccountIamMemberConditionPtrOutput

func (AccountIamMemberConditionPtrOutput) ToAccountIamMemberConditionPtrOutputWithContext

func (o AccountIamMemberConditionPtrOutput) ToAccountIamMemberConditionPtrOutputWithContext(ctx context.Context) AccountIamMemberConditionPtrOutput

type AccountIamMemberInput

type AccountIamMemberInput interface {
	pulumi.Input

	ToAccountIamMemberOutput() AccountIamMemberOutput
	ToAccountIamMemberOutputWithContext(ctx context.Context) AccountIamMemberOutput
}

type AccountIamMemberMap

type AccountIamMemberMap map[string]AccountIamMemberInput

func (AccountIamMemberMap) ElementType

func (AccountIamMemberMap) ElementType() reflect.Type

func (AccountIamMemberMap) ToAccountIamMemberMapOutput

func (i AccountIamMemberMap) ToAccountIamMemberMapOutput() AccountIamMemberMapOutput

func (AccountIamMemberMap) ToAccountIamMemberMapOutputWithContext

func (i AccountIamMemberMap) ToAccountIamMemberMapOutputWithContext(ctx context.Context) AccountIamMemberMapOutput

type AccountIamMemberMapInput

type AccountIamMemberMapInput interface {
	pulumi.Input

	ToAccountIamMemberMapOutput() AccountIamMemberMapOutput
	ToAccountIamMemberMapOutputWithContext(context.Context) AccountIamMemberMapOutput
}

AccountIamMemberMapInput is an input type that accepts AccountIamMemberMap and AccountIamMemberMapOutput values. You can construct a concrete instance of `AccountIamMemberMapInput` via:

AccountIamMemberMap{ "key": AccountIamMemberArgs{...} }

type AccountIamMemberMapOutput

type AccountIamMemberMapOutput struct{ *pulumi.OutputState }

func (AccountIamMemberMapOutput) ElementType

func (AccountIamMemberMapOutput) ElementType() reflect.Type

func (AccountIamMemberMapOutput) MapIndex

func (AccountIamMemberMapOutput) ToAccountIamMemberMapOutput

func (o AccountIamMemberMapOutput) ToAccountIamMemberMapOutput() AccountIamMemberMapOutput

func (AccountIamMemberMapOutput) ToAccountIamMemberMapOutputWithContext

func (o AccountIamMemberMapOutput) ToAccountIamMemberMapOutputWithContext(ctx context.Context) AccountIamMemberMapOutput

type AccountIamMemberOutput

type AccountIamMemberOutput struct{ *pulumi.OutputState }

func (AccountIamMemberOutput) BillingAccountId

func (o AccountIamMemberOutput) BillingAccountId() pulumi.StringOutput

The billing account id.

For `billing.AccountIamMember` or `billing.AccountIamBinding`:

func (AccountIamMemberOutput) Condition

func (AccountIamMemberOutput) ElementType

func (AccountIamMemberOutput) ElementType() reflect.Type

func (AccountIamMemberOutput) Etag

(Computed) The etag of the billing account's IAM policy.

func (AccountIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (AccountIamMemberOutput) Role

The role that should be applied. Only one `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).

`billing.AccountIamPolicy` only:

func (AccountIamMemberOutput) ToAccountIamMemberOutput

func (o AccountIamMemberOutput) ToAccountIamMemberOutput() AccountIamMemberOutput

func (AccountIamMemberOutput) ToAccountIamMemberOutputWithContext

func (o AccountIamMemberOutput) ToAccountIamMemberOutputWithContext(ctx context.Context) AccountIamMemberOutput

type AccountIamMemberState

type AccountIamMemberState struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringPtrInput
	Condition        AccountIamMemberConditionPtrInput
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `billing.AccountIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	//
	// `billing.AccountIamPolicy` only:
	Role pulumi.StringPtrInput
}

func (AccountIamMemberState) ElementType

func (AccountIamMemberState) ElementType() reflect.Type

type AccountIamPolicy

type AccountIamPolicy struct {
	pulumi.CustomResourceState

	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringOutput `pulumi:"billingAccountId"`
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
}

Three different resources help you manage IAM policies on billing accounts. Each of these resources serves a different use case:

* `billing.AccountIamPolicy`: Authoritative. Sets the IAM policy for the billing accounts and replaces any existing policy already attached. * `billing.AccountIamBinding`: 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 table are preserved. * `billing.AccountIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the billing accounts are preserved.

> **Note:** `billing.AccountIamPolicy` **cannot** be used in conjunction with `billing.AccountIamBinding` and `billing.AccountIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the billing account as `billing.AccountIamPolicy` replaces the entire policy.

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

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/billing.viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewAccountIamPolicy(ctx, "editor", &billing.AccountIamPolicyArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			PolicyData:       pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamBinding(ctx, "editor", &billing.AccountIamBindingArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_billing\_account\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewAccountIamMember(ctx, "editor", &billing.AccountIamMemberArgs{
			BillingAccountId: pulumi.String("00AA00-000AAA-00AA0A"),
			Role:             pulumi.String("roles/billing.viewer"),
			Member:           pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the `billing_account_id` identifier of the Billing Account resource only. For example:

* `{{billing_account_id}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{billing_account_id}}

to = google_billing_account_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:billing/accountIamPolicy:AccountIamPolicy default {{billing_account_id}} ```

func GetAccountIamPolicy

func GetAccountIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountIamPolicyState, opts ...pulumi.ResourceOption) (*AccountIamPolicy, error)

GetAccountIamPolicy gets an existing AccountIamPolicy 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 NewAccountIamPolicy

func NewAccountIamPolicy(ctx *pulumi.Context,
	name string, args *AccountIamPolicyArgs, opts ...pulumi.ResourceOption) (*AccountIamPolicy, error)

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

func (*AccountIamPolicy) ElementType

func (*AccountIamPolicy) ElementType() reflect.Type

func (*AccountIamPolicy) ToAccountIamPolicyOutput

func (i *AccountIamPolicy) ToAccountIamPolicyOutput() AccountIamPolicyOutput

func (*AccountIamPolicy) ToAccountIamPolicyOutputWithContext

func (i *AccountIamPolicy) ToAccountIamPolicyOutputWithContext(ctx context.Context) AccountIamPolicyOutput

type AccountIamPolicyArgs

type AccountIamPolicyArgs struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringInput
}

The set of arguments for constructing a AccountIamPolicy resource.

func (AccountIamPolicyArgs) ElementType

func (AccountIamPolicyArgs) ElementType() reflect.Type

type AccountIamPolicyArray

type AccountIamPolicyArray []AccountIamPolicyInput

func (AccountIamPolicyArray) ElementType

func (AccountIamPolicyArray) ElementType() reflect.Type

func (AccountIamPolicyArray) ToAccountIamPolicyArrayOutput

func (i AccountIamPolicyArray) ToAccountIamPolicyArrayOutput() AccountIamPolicyArrayOutput

func (AccountIamPolicyArray) ToAccountIamPolicyArrayOutputWithContext

func (i AccountIamPolicyArray) ToAccountIamPolicyArrayOutputWithContext(ctx context.Context) AccountIamPolicyArrayOutput

type AccountIamPolicyArrayInput

type AccountIamPolicyArrayInput interface {
	pulumi.Input

	ToAccountIamPolicyArrayOutput() AccountIamPolicyArrayOutput
	ToAccountIamPolicyArrayOutputWithContext(context.Context) AccountIamPolicyArrayOutput
}

AccountIamPolicyArrayInput is an input type that accepts AccountIamPolicyArray and AccountIamPolicyArrayOutput values. You can construct a concrete instance of `AccountIamPolicyArrayInput` via:

AccountIamPolicyArray{ AccountIamPolicyArgs{...} }

type AccountIamPolicyArrayOutput

type AccountIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (AccountIamPolicyArrayOutput) ElementType

func (AccountIamPolicyArrayOutput) Index

func (AccountIamPolicyArrayOutput) ToAccountIamPolicyArrayOutput

func (o AccountIamPolicyArrayOutput) ToAccountIamPolicyArrayOutput() AccountIamPolicyArrayOutput

func (AccountIamPolicyArrayOutput) ToAccountIamPolicyArrayOutputWithContext

func (o AccountIamPolicyArrayOutput) ToAccountIamPolicyArrayOutputWithContext(ctx context.Context) AccountIamPolicyArrayOutput

type AccountIamPolicyInput

type AccountIamPolicyInput interface {
	pulumi.Input

	ToAccountIamPolicyOutput() AccountIamPolicyOutput
	ToAccountIamPolicyOutputWithContext(ctx context.Context) AccountIamPolicyOutput
}

type AccountIamPolicyMap

type AccountIamPolicyMap map[string]AccountIamPolicyInput

func (AccountIamPolicyMap) ElementType

func (AccountIamPolicyMap) ElementType() reflect.Type

func (AccountIamPolicyMap) ToAccountIamPolicyMapOutput

func (i AccountIamPolicyMap) ToAccountIamPolicyMapOutput() AccountIamPolicyMapOutput

func (AccountIamPolicyMap) ToAccountIamPolicyMapOutputWithContext

func (i AccountIamPolicyMap) ToAccountIamPolicyMapOutputWithContext(ctx context.Context) AccountIamPolicyMapOutput

type AccountIamPolicyMapInput

type AccountIamPolicyMapInput interface {
	pulumi.Input

	ToAccountIamPolicyMapOutput() AccountIamPolicyMapOutput
	ToAccountIamPolicyMapOutputWithContext(context.Context) AccountIamPolicyMapOutput
}

AccountIamPolicyMapInput is an input type that accepts AccountIamPolicyMap and AccountIamPolicyMapOutput values. You can construct a concrete instance of `AccountIamPolicyMapInput` via:

AccountIamPolicyMap{ "key": AccountIamPolicyArgs{...} }

type AccountIamPolicyMapOutput

type AccountIamPolicyMapOutput struct{ *pulumi.OutputState }

func (AccountIamPolicyMapOutput) ElementType

func (AccountIamPolicyMapOutput) ElementType() reflect.Type

func (AccountIamPolicyMapOutput) MapIndex

func (AccountIamPolicyMapOutput) ToAccountIamPolicyMapOutput

func (o AccountIamPolicyMapOutput) ToAccountIamPolicyMapOutput() AccountIamPolicyMapOutput

func (AccountIamPolicyMapOutput) ToAccountIamPolicyMapOutputWithContext

func (o AccountIamPolicyMapOutput) ToAccountIamPolicyMapOutputWithContext(ctx context.Context) AccountIamPolicyMapOutput

type AccountIamPolicyOutput

type AccountIamPolicyOutput struct{ *pulumi.OutputState }

func (AccountIamPolicyOutput) BillingAccountId

func (o AccountIamPolicyOutput) BillingAccountId() pulumi.StringOutput

The billing account id.

For `billing.AccountIamMember` or `billing.AccountIamBinding`:

func (AccountIamPolicyOutput) ElementType

func (AccountIamPolicyOutput) ElementType() reflect.Type

func (AccountIamPolicyOutput) Etag

(Computed) The etag of the billing account's IAM policy.

func (AccountIamPolicyOutput) PolicyData

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

***

func (AccountIamPolicyOutput) ToAccountIamPolicyOutput

func (o AccountIamPolicyOutput) ToAccountIamPolicyOutput() AccountIamPolicyOutput

func (AccountIamPolicyOutput) ToAccountIamPolicyOutputWithContext

func (o AccountIamPolicyOutput) ToAccountIamPolicyOutputWithContext(ctx context.Context) AccountIamPolicyOutput

type AccountIamPolicyState

type AccountIamPolicyState struct {
	// The billing account id.
	//
	// For `billing.AccountIamMember` or `billing.AccountIamBinding`:
	BillingAccountId pulumi.StringPtrInput
	// (Computed) The etag of the billing account's IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringPtrInput
}

func (AccountIamPolicyState) ElementType

func (AccountIamPolicyState) ElementType() reflect.Type

type Budget

type Budget struct {
	pulumi.CustomResourceState

	// Defines notifications that are sent on every update to the billing account's spend, regardless of the thresholds defined
	// using threshold rules.
	AllUpdatesRule BudgetAllUpdatesRulePtrOutput `pulumi:"allUpdatesRule"`
	// The budgeted amount for each usage period.
	// Structure is documented below.
	Amount BudgetAmountOutput `pulumi:"amount"`
	// ID of the billing account to set a budget on.
	BillingAccount pulumi.StringOutput `pulumi:"billingAccount"`
	// Filters that define which resources are used to compute the actual spend against the budget.
	BudgetFilter BudgetBudgetFilterOutput `pulumi:"budgetFilter"`
	// User data for display name in UI. Must be <= 60 chars.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// Resource name of the budget. The resource name
	// implies the scope of a budget. Values are of the form
	// billingAccounts/{billingAccountId}/budgets/{budgetId}.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
	// budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
	OwnershipScope pulumi.StringPtrOutput `pulumi:"ownershipScope"`
	// Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
	// the budget.
	ThresholdRules BudgetThresholdRuleArrayOutput `pulumi:"thresholdRules"`
}

Budget configuration for a billing account.

To get more information about Budget, see:

* [API documentation](https://cloud.google.com/billing/docs/reference/budget/rest/v1/billingAccounts.budgets) * How-to Guides

> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource, you must specify a `billingProject` and set `userProjectOverride` to true in the provider configuration. Otherwise the Billing Budgets API will return a 403 error. Your account must have the `serviceusage.services.use` permission on the `billingProject` you defined.

## Example Usage

### Billing Budget Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		account, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("000000-0000000-0000000-000000"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewBudget(ctx, "budget", &billing.BudgetArgs{
			BillingAccount: pulumi.String(account.Id),
			DisplayName:    pulumi.String("Example Billing Budget"),
			Amount: &billing.BudgetAmountArgs{
				SpecifiedAmount: &billing.BudgetAmountSpecifiedAmountArgs{
					CurrencyCode: pulumi.String("USD"),
					Units:        pulumi.String("100000"),
				},
			},
			ThresholdRules: billing.BudgetThresholdRuleArray{
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(0.5),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Billing Budget Lastperiod

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		account, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("000000-0000000-0000000-000000"),
		}, nil)
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewBudget(ctx, "budget", &billing.BudgetArgs{
			BillingAccount: pulumi.String(account.Id),
			DisplayName:    pulumi.String("Example Billing Budget"),
			BudgetFilter: &billing.BudgetBudgetFilterArgs{
				Projects: pulumi.StringArray{
					pulumi.String(fmt.Sprintf("projects/%v", project.Number)),
				},
			},
			Amount: &billing.BudgetAmountArgs{
				LastPeriodAmount: pulumi.Bool(true),
			},
			ThresholdRules: billing.BudgetThresholdRuleArray{
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(10),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Billing Budget Filter

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		account, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("000000-0000000-0000000-000000"),
		}, nil)
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewBudget(ctx, "budget", &billing.BudgetArgs{
			BillingAccount: pulumi.String(account.Id),
			DisplayName:    pulumi.String("Example Billing Budget"),
			BudgetFilter: &billing.BudgetBudgetFilterArgs{
				Projects: pulumi.StringArray{
					pulumi.String(fmt.Sprintf("projects/%v", project.Number)),
				},
				CreditTypesTreatment: pulumi.String("INCLUDE_SPECIFIED_CREDITS"),
				Services: pulumi.StringArray{
					pulumi.String("services/24E6-581D-38E5"),
				},
				CreditTypes: pulumi.StringArray{
					pulumi.String("PROMOTION"),
					pulumi.String("FREE_TIER"),
				},
				ResourceAncestors: pulumi.StringArray{
					pulumi.String("organizations/123456789"),
				},
			},
			Amount: &billing.BudgetAmountArgs{
				SpecifiedAmount: &billing.BudgetAmountSpecifiedAmountArgs{
					CurrencyCode: pulumi.String("USD"),
					Units:        pulumi.String("100000"),
				},
			},
			ThresholdRules: billing.BudgetThresholdRuleArray{
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(0.5),
				},
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(0.9),
					SpendBasis:       pulumi.String("FORECASTED_SPEND"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Billing Budget Notify

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		account, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("000000-0000000-0000000-000000"),
		}, nil)
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		notificationChannel, err := monitoring.NewNotificationChannel(ctx, "notification_channel", &monitoring.NotificationChannelArgs{
			DisplayName: pulumi.String("Example Notification Channel"),
			Type:        pulumi.String("email"),
			Labels: pulumi.StringMap{
				"email_address": pulumi.String("address@example.com"),
			},
		})
		if err != nil {
			return err
		}
		_, err = billing.NewBudget(ctx, "budget", &billing.BudgetArgs{
			BillingAccount: pulumi.String(account.Id),
			DisplayName:    pulumi.String("Example Billing Budget"),
			BudgetFilter: &billing.BudgetBudgetFilterArgs{
				Projects: pulumi.StringArray{
					pulumi.String(fmt.Sprintf("projects/%v", project.Number)),
				},
			},
			Amount: &billing.BudgetAmountArgs{
				SpecifiedAmount: &billing.BudgetAmountSpecifiedAmountArgs{
					CurrencyCode: pulumi.String("USD"),
					Units:        pulumi.String("100000"),
				},
			},
			ThresholdRules: billing.BudgetThresholdRuleArray{
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(1),
				},
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(1),
					SpendBasis:       pulumi.String("FORECASTED_SPEND"),
				},
			},
			AllUpdatesRule: &billing.BudgetAllUpdatesRuleArgs{
				MonitoringNotificationChannels: pulumi.StringArray{
					notificationChannel.ID(),
				},
				DisableDefaultIamRecipients: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Billing Budget Customperiod

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		account, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("000000-0000000-0000000-000000"),
		}, nil)
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = billing.NewBudget(ctx, "budget", &billing.BudgetArgs{
			BillingAccount: pulumi.String(account.Id),
			DisplayName:    pulumi.String("Example Billing Budget"),
			BudgetFilter: &billing.BudgetBudgetFilterArgs{
				Projects: pulumi.StringArray{
					pulumi.String(fmt.Sprintf("projects/%v", project.Number)),
				},
				CreditTypesTreatment: pulumi.String("EXCLUDE_ALL_CREDITS"),
				Services: pulumi.StringArray{
					pulumi.String("services/24E6-581D-38E5"),
				},
				CustomPeriod: &billing.BudgetBudgetFilterCustomPeriodArgs{
					StartDate: &billing.BudgetBudgetFilterCustomPeriodStartDateArgs{
						Year:  pulumi.Int(2022),
						Month: pulumi.Int(1),
						Day:   pulumi.Int(1),
					},
					EndDate: &billing.BudgetBudgetFilterCustomPeriodEndDateArgs{
						Year:  pulumi.Int(2023),
						Month: pulumi.Int(12),
						Day:   pulumi.Int(31),
					},
				},
			},
			Amount: &billing.BudgetAmountArgs{
				SpecifiedAmount: &billing.BudgetAmountSpecifiedAmountArgs{
					CurrencyCode: pulumi.String("USD"),
					Units:        pulumi.String("100000"),
				},
			},
			ThresholdRules: billing.BudgetThresholdRuleArray{
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(0.5),
				},
				&billing.BudgetThresholdRuleArgs{
					ThresholdPercent: pulumi.Float64(0.9),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Budget can be imported using any of these accepted formats:

* `billingAccounts/{{billing_account}}/budgets/{{name}}`

* `{{billing_account}}/{{name}}`

* `{{name}}`

When using the `pulumi import` command, Budget can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:billing/budget:Budget default billingAccounts/{{billing_account}}/budgets/{{name}} ```

```sh $ pulumi import gcp:billing/budget:Budget default {{billing_account}}/{{name}} ```

```sh $ pulumi import gcp:billing/budget:Budget default {{name}} ```

func GetBudget

func GetBudget(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BudgetState, opts ...pulumi.ResourceOption) (*Budget, error)

GetBudget gets an existing Budget 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 NewBudget

func NewBudget(ctx *pulumi.Context,
	name string, args *BudgetArgs, opts ...pulumi.ResourceOption) (*Budget, error)

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

func (*Budget) ElementType

func (*Budget) ElementType() reflect.Type

func (*Budget) ToBudgetOutput

func (i *Budget) ToBudgetOutput() BudgetOutput

func (*Budget) ToBudgetOutputWithContext

func (i *Budget) ToBudgetOutputWithContext(ctx context.Context) BudgetOutput

type BudgetAllUpdatesRule

type BudgetAllUpdatesRule struct {
	// Boolean. When set to true, disables default notifications sent
	// when a threshold is exceeded. Default recipients are
	// those with Billing Account Administrators and Billing
	// Account Users IAM roles for the target account.
	DisableDefaultIamRecipients *bool `pulumi:"disableDefaultIamRecipients"`
	// The full resource name of a monitoring notification
	// channel in the form
	// projects/{project_id}/notificationChannels/{channel_id}.
	// A maximum of 5 channels are allowed.
	MonitoringNotificationChannels []string `pulumi:"monitoringNotificationChannels"`
	// The name of the Cloud Pub/Sub topic where budget related
	// messages will be published, in the form
	// projects/{project_id}/topics/{topic_id}. Updates are sent
	// at regular intervals to the topic.
	PubsubTopic *string `pulumi:"pubsubTopic"`
	// The schema version of the notification. Only "1.0" is
	// accepted. It represents the JSON schema as defined in
	// https://cloud.google.com/billing/docs/how-to/budgets#notification_format.
	SchemaVersion *string `pulumi:"schemaVersion"`
}

type BudgetAllUpdatesRuleArgs

type BudgetAllUpdatesRuleArgs struct {
	// Boolean. When set to true, disables default notifications sent
	// when a threshold is exceeded. Default recipients are
	// those with Billing Account Administrators and Billing
	// Account Users IAM roles for the target account.
	DisableDefaultIamRecipients pulumi.BoolPtrInput `pulumi:"disableDefaultIamRecipients"`
	// The full resource name of a monitoring notification
	// channel in the form
	// projects/{project_id}/notificationChannels/{channel_id}.
	// A maximum of 5 channels are allowed.
	MonitoringNotificationChannels pulumi.StringArrayInput `pulumi:"monitoringNotificationChannels"`
	// The name of the Cloud Pub/Sub topic where budget related
	// messages will be published, in the form
	// projects/{project_id}/topics/{topic_id}. Updates are sent
	// at regular intervals to the topic.
	PubsubTopic pulumi.StringPtrInput `pulumi:"pubsubTopic"`
	// The schema version of the notification. Only "1.0" is
	// accepted. It represents the JSON schema as defined in
	// https://cloud.google.com/billing/docs/how-to/budgets#notification_format.
	SchemaVersion pulumi.StringPtrInput `pulumi:"schemaVersion"`
}

func (BudgetAllUpdatesRuleArgs) ElementType

func (BudgetAllUpdatesRuleArgs) ElementType() reflect.Type

func (BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRuleOutput

func (i BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRuleOutput() BudgetAllUpdatesRuleOutput

func (BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRuleOutputWithContext

func (i BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRuleOutputWithContext(ctx context.Context) BudgetAllUpdatesRuleOutput

func (BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRulePtrOutput

func (i BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRulePtrOutput() BudgetAllUpdatesRulePtrOutput

func (BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRulePtrOutputWithContext

func (i BudgetAllUpdatesRuleArgs) ToBudgetAllUpdatesRulePtrOutputWithContext(ctx context.Context) BudgetAllUpdatesRulePtrOutput

type BudgetAllUpdatesRuleInput

type BudgetAllUpdatesRuleInput interface {
	pulumi.Input

	ToBudgetAllUpdatesRuleOutput() BudgetAllUpdatesRuleOutput
	ToBudgetAllUpdatesRuleOutputWithContext(context.Context) BudgetAllUpdatesRuleOutput
}

BudgetAllUpdatesRuleInput is an input type that accepts BudgetAllUpdatesRuleArgs and BudgetAllUpdatesRuleOutput values. You can construct a concrete instance of `BudgetAllUpdatesRuleInput` via:

BudgetAllUpdatesRuleArgs{...}

type BudgetAllUpdatesRuleOutput

type BudgetAllUpdatesRuleOutput struct{ *pulumi.OutputState }

func (BudgetAllUpdatesRuleOutput) DisableDefaultIamRecipients

func (o BudgetAllUpdatesRuleOutput) DisableDefaultIamRecipients() pulumi.BoolPtrOutput

Boolean. When set to true, disables default notifications sent when a threshold is exceeded. Default recipients are those with Billing Account Administrators and Billing Account Users IAM roles for the target account.

func (BudgetAllUpdatesRuleOutput) ElementType

func (BudgetAllUpdatesRuleOutput) ElementType() reflect.Type

func (BudgetAllUpdatesRuleOutput) MonitoringNotificationChannels

func (o BudgetAllUpdatesRuleOutput) MonitoringNotificationChannels() pulumi.StringArrayOutput

The full resource name of a monitoring notification channel in the form projects/{project_id}/notificationChannels/{channel_id}. A maximum of 5 channels are allowed.

func (BudgetAllUpdatesRuleOutput) PubsubTopic

The name of the Cloud Pub/Sub topic where budget related messages will be published, in the form projects/{project_id}/topics/{topic_id}. Updates are sent at regular intervals to the topic.

func (BudgetAllUpdatesRuleOutput) SchemaVersion

The schema version of the notification. Only "1.0" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets#notification_format.

func (BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRuleOutput

func (o BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRuleOutput() BudgetAllUpdatesRuleOutput

func (BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRuleOutputWithContext

func (o BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRuleOutputWithContext(ctx context.Context) BudgetAllUpdatesRuleOutput

func (BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRulePtrOutput

func (o BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRulePtrOutput() BudgetAllUpdatesRulePtrOutput

func (BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRulePtrOutputWithContext

func (o BudgetAllUpdatesRuleOutput) ToBudgetAllUpdatesRulePtrOutputWithContext(ctx context.Context) BudgetAllUpdatesRulePtrOutput

type BudgetAllUpdatesRulePtrInput

type BudgetAllUpdatesRulePtrInput interface {
	pulumi.Input

	ToBudgetAllUpdatesRulePtrOutput() BudgetAllUpdatesRulePtrOutput
	ToBudgetAllUpdatesRulePtrOutputWithContext(context.Context) BudgetAllUpdatesRulePtrOutput
}

BudgetAllUpdatesRulePtrInput is an input type that accepts BudgetAllUpdatesRuleArgs, BudgetAllUpdatesRulePtr and BudgetAllUpdatesRulePtrOutput values. You can construct a concrete instance of `BudgetAllUpdatesRulePtrInput` via:

        BudgetAllUpdatesRuleArgs{...}

or:

        nil

type BudgetAllUpdatesRulePtrOutput

type BudgetAllUpdatesRulePtrOutput struct{ *pulumi.OutputState }

func (BudgetAllUpdatesRulePtrOutput) DisableDefaultIamRecipients

func (o BudgetAllUpdatesRulePtrOutput) DisableDefaultIamRecipients() pulumi.BoolPtrOutput

Boolean. When set to true, disables default notifications sent when a threshold is exceeded. Default recipients are those with Billing Account Administrators and Billing Account Users IAM roles for the target account.

func (BudgetAllUpdatesRulePtrOutput) Elem

func (BudgetAllUpdatesRulePtrOutput) ElementType

func (BudgetAllUpdatesRulePtrOutput) MonitoringNotificationChannels

func (o BudgetAllUpdatesRulePtrOutput) MonitoringNotificationChannels() pulumi.StringArrayOutput

The full resource name of a monitoring notification channel in the form projects/{project_id}/notificationChannels/{channel_id}. A maximum of 5 channels are allowed.

func (BudgetAllUpdatesRulePtrOutput) PubsubTopic

The name of the Cloud Pub/Sub topic where budget related messages will be published, in the form projects/{project_id}/topics/{topic_id}. Updates are sent at regular intervals to the topic.

func (BudgetAllUpdatesRulePtrOutput) SchemaVersion

The schema version of the notification. Only "1.0" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets#notification_format.

func (BudgetAllUpdatesRulePtrOutput) ToBudgetAllUpdatesRulePtrOutput

func (o BudgetAllUpdatesRulePtrOutput) ToBudgetAllUpdatesRulePtrOutput() BudgetAllUpdatesRulePtrOutput

func (BudgetAllUpdatesRulePtrOutput) ToBudgetAllUpdatesRulePtrOutputWithContext

func (o BudgetAllUpdatesRulePtrOutput) ToBudgetAllUpdatesRulePtrOutputWithContext(ctx context.Context) BudgetAllUpdatesRulePtrOutput

type BudgetAmount

type BudgetAmount struct {
	// Configures a budget amount that is automatically set to 100% of
	// last period's spend.
	// Boolean. Set value to true to use. Do not set to false, instead
	// use the `specifiedAmount` block.
	LastPeriodAmount *bool `pulumi:"lastPeriodAmount"`
	// A specified amount to use as the budget. currencyCode is
	// optional. If specified, it must match the currency of the
	// billing account. The currencyCode is provided on output.
	// Structure is documented below.
	SpecifiedAmount *BudgetAmountSpecifiedAmount `pulumi:"specifiedAmount"`
}

type BudgetAmountArgs

type BudgetAmountArgs struct {
	// Configures a budget amount that is automatically set to 100% of
	// last period's spend.
	// Boolean. Set value to true to use. Do not set to false, instead
	// use the `specifiedAmount` block.
	LastPeriodAmount pulumi.BoolPtrInput `pulumi:"lastPeriodAmount"`
	// A specified amount to use as the budget. currencyCode is
	// optional. If specified, it must match the currency of the
	// billing account. The currencyCode is provided on output.
	// Structure is documented below.
	SpecifiedAmount BudgetAmountSpecifiedAmountPtrInput `pulumi:"specifiedAmount"`
}

func (BudgetAmountArgs) ElementType

func (BudgetAmountArgs) ElementType() reflect.Type

func (BudgetAmountArgs) ToBudgetAmountOutput

func (i BudgetAmountArgs) ToBudgetAmountOutput() BudgetAmountOutput

func (BudgetAmountArgs) ToBudgetAmountOutputWithContext

func (i BudgetAmountArgs) ToBudgetAmountOutputWithContext(ctx context.Context) BudgetAmountOutput

func (BudgetAmountArgs) ToBudgetAmountPtrOutput

func (i BudgetAmountArgs) ToBudgetAmountPtrOutput() BudgetAmountPtrOutput

func (BudgetAmountArgs) ToBudgetAmountPtrOutputWithContext

func (i BudgetAmountArgs) ToBudgetAmountPtrOutputWithContext(ctx context.Context) BudgetAmountPtrOutput

type BudgetAmountInput

type BudgetAmountInput interface {
	pulumi.Input

	ToBudgetAmountOutput() BudgetAmountOutput
	ToBudgetAmountOutputWithContext(context.Context) BudgetAmountOutput
}

BudgetAmountInput is an input type that accepts BudgetAmountArgs and BudgetAmountOutput values. You can construct a concrete instance of `BudgetAmountInput` via:

BudgetAmountArgs{...}

type BudgetAmountOutput

type BudgetAmountOutput struct{ *pulumi.OutputState }

func (BudgetAmountOutput) ElementType

func (BudgetAmountOutput) ElementType() reflect.Type

func (BudgetAmountOutput) LastPeriodAmount

func (o BudgetAmountOutput) LastPeriodAmount() pulumi.BoolPtrOutput

Configures a budget amount that is automatically set to 100% of last period's spend. Boolean. Set value to true to use. Do not set to false, instead use the `specifiedAmount` block.

func (BudgetAmountOutput) SpecifiedAmount

A specified amount to use as the budget. currencyCode is optional. If specified, it must match the currency of the billing account. The currencyCode is provided on output. Structure is documented below.

func (BudgetAmountOutput) ToBudgetAmountOutput

func (o BudgetAmountOutput) ToBudgetAmountOutput() BudgetAmountOutput

func (BudgetAmountOutput) ToBudgetAmountOutputWithContext

func (o BudgetAmountOutput) ToBudgetAmountOutputWithContext(ctx context.Context) BudgetAmountOutput

func (BudgetAmountOutput) ToBudgetAmountPtrOutput

func (o BudgetAmountOutput) ToBudgetAmountPtrOutput() BudgetAmountPtrOutput

func (BudgetAmountOutput) ToBudgetAmountPtrOutputWithContext

func (o BudgetAmountOutput) ToBudgetAmountPtrOutputWithContext(ctx context.Context) BudgetAmountPtrOutput

type BudgetAmountPtrInput

type BudgetAmountPtrInput interface {
	pulumi.Input

	ToBudgetAmountPtrOutput() BudgetAmountPtrOutput
	ToBudgetAmountPtrOutputWithContext(context.Context) BudgetAmountPtrOutput
}

BudgetAmountPtrInput is an input type that accepts BudgetAmountArgs, BudgetAmountPtr and BudgetAmountPtrOutput values. You can construct a concrete instance of `BudgetAmountPtrInput` via:

        BudgetAmountArgs{...}

or:

        nil

type BudgetAmountPtrOutput

type BudgetAmountPtrOutput struct{ *pulumi.OutputState }

func (BudgetAmountPtrOutput) Elem

func (BudgetAmountPtrOutput) ElementType

func (BudgetAmountPtrOutput) ElementType() reflect.Type

func (BudgetAmountPtrOutput) LastPeriodAmount

func (o BudgetAmountPtrOutput) LastPeriodAmount() pulumi.BoolPtrOutput

Configures a budget amount that is automatically set to 100% of last period's spend. Boolean. Set value to true to use. Do not set to false, instead use the `specifiedAmount` block.

func (BudgetAmountPtrOutput) SpecifiedAmount

A specified amount to use as the budget. currencyCode is optional. If specified, it must match the currency of the billing account. The currencyCode is provided on output. Structure is documented below.

func (BudgetAmountPtrOutput) ToBudgetAmountPtrOutput

func (o BudgetAmountPtrOutput) ToBudgetAmountPtrOutput() BudgetAmountPtrOutput

func (BudgetAmountPtrOutput) ToBudgetAmountPtrOutputWithContext

func (o BudgetAmountPtrOutput) ToBudgetAmountPtrOutputWithContext(ctx context.Context) BudgetAmountPtrOutput

type BudgetAmountSpecifiedAmount

type BudgetAmountSpecifiedAmount struct {
	// The 3-letter currency code defined in ISO 4217.
	CurrencyCode *string `pulumi:"currencyCode"`
	// Number of nano (10^-9) units of the amount.
	// The value must be between -999,999,999 and +999,999,999
	// inclusive. If units is positive, nanos must be positive or
	// zero. If units is zero, nanos can be positive, zero, or
	// negative. If units is negative, nanos must be negative or
	// zero. For example $-1.75 is represented as units=-1 and
	// nanos=-750,000,000.
	//
	// ***
	Nanos *int `pulumi:"nanos"`
	// The whole units of the amount. For example if currencyCode
	// is "USD", then 1 unit is one US dollar.
	Units *string `pulumi:"units"`
}

type BudgetAmountSpecifiedAmountArgs

type BudgetAmountSpecifiedAmountArgs struct {
	// The 3-letter currency code defined in ISO 4217.
	CurrencyCode pulumi.StringPtrInput `pulumi:"currencyCode"`
	// Number of nano (10^-9) units of the amount.
	// The value must be between -999,999,999 and +999,999,999
	// inclusive. If units is positive, nanos must be positive or
	// zero. If units is zero, nanos can be positive, zero, or
	// negative. If units is negative, nanos must be negative or
	// zero. For example $-1.75 is represented as units=-1 and
	// nanos=-750,000,000.
	//
	// ***
	Nanos pulumi.IntPtrInput `pulumi:"nanos"`
	// The whole units of the amount. For example if currencyCode
	// is "USD", then 1 unit is one US dollar.
	Units pulumi.StringPtrInput `pulumi:"units"`
}

func (BudgetAmountSpecifiedAmountArgs) ElementType

func (BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountOutput

func (i BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountOutput() BudgetAmountSpecifiedAmountOutput

func (BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountOutputWithContext

func (i BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountOutputWithContext(ctx context.Context) BudgetAmountSpecifiedAmountOutput

func (BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountPtrOutput

func (i BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountPtrOutput() BudgetAmountSpecifiedAmountPtrOutput

func (BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountPtrOutputWithContext

func (i BudgetAmountSpecifiedAmountArgs) ToBudgetAmountSpecifiedAmountPtrOutputWithContext(ctx context.Context) BudgetAmountSpecifiedAmountPtrOutput

type BudgetAmountSpecifiedAmountInput

type BudgetAmountSpecifiedAmountInput interface {
	pulumi.Input

	ToBudgetAmountSpecifiedAmountOutput() BudgetAmountSpecifiedAmountOutput
	ToBudgetAmountSpecifiedAmountOutputWithContext(context.Context) BudgetAmountSpecifiedAmountOutput
}

BudgetAmountSpecifiedAmountInput is an input type that accepts BudgetAmountSpecifiedAmountArgs and BudgetAmountSpecifiedAmountOutput values. You can construct a concrete instance of `BudgetAmountSpecifiedAmountInput` via:

BudgetAmountSpecifiedAmountArgs{...}

type BudgetAmountSpecifiedAmountOutput

type BudgetAmountSpecifiedAmountOutput struct{ *pulumi.OutputState }

func (BudgetAmountSpecifiedAmountOutput) CurrencyCode

The 3-letter currency code defined in ISO 4217.

func (BudgetAmountSpecifiedAmountOutput) ElementType

func (BudgetAmountSpecifiedAmountOutput) Nanos

Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If units is positive, nanos must be positive or zero. If units is zero, nanos can be positive, zero, or negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

***

func (BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountOutput

func (o BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountOutput() BudgetAmountSpecifiedAmountOutput

func (BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountOutputWithContext

func (o BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountOutputWithContext(ctx context.Context) BudgetAmountSpecifiedAmountOutput

func (BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountPtrOutput

func (o BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountPtrOutput() BudgetAmountSpecifiedAmountPtrOutput

func (BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountPtrOutputWithContext

func (o BudgetAmountSpecifiedAmountOutput) ToBudgetAmountSpecifiedAmountPtrOutputWithContext(ctx context.Context) BudgetAmountSpecifiedAmountPtrOutput

func (BudgetAmountSpecifiedAmountOutput) Units

The whole units of the amount. For example if currencyCode is "USD", then 1 unit is one US dollar.

type BudgetAmountSpecifiedAmountPtrInput

type BudgetAmountSpecifiedAmountPtrInput interface {
	pulumi.Input

	ToBudgetAmountSpecifiedAmountPtrOutput() BudgetAmountSpecifiedAmountPtrOutput
	ToBudgetAmountSpecifiedAmountPtrOutputWithContext(context.Context) BudgetAmountSpecifiedAmountPtrOutput
}

BudgetAmountSpecifiedAmountPtrInput is an input type that accepts BudgetAmountSpecifiedAmountArgs, BudgetAmountSpecifiedAmountPtr and BudgetAmountSpecifiedAmountPtrOutput values. You can construct a concrete instance of `BudgetAmountSpecifiedAmountPtrInput` via:

        BudgetAmountSpecifiedAmountArgs{...}

or:

        nil

type BudgetAmountSpecifiedAmountPtrOutput

type BudgetAmountSpecifiedAmountPtrOutput struct{ *pulumi.OutputState }

func (BudgetAmountSpecifiedAmountPtrOutput) CurrencyCode

The 3-letter currency code defined in ISO 4217.

func (BudgetAmountSpecifiedAmountPtrOutput) Elem

func (BudgetAmountSpecifiedAmountPtrOutput) ElementType

func (BudgetAmountSpecifiedAmountPtrOutput) Nanos

Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If units is positive, nanos must be positive or zero. If units is zero, nanos can be positive, zero, or negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

***

func (BudgetAmountSpecifiedAmountPtrOutput) ToBudgetAmountSpecifiedAmountPtrOutput

func (o BudgetAmountSpecifiedAmountPtrOutput) ToBudgetAmountSpecifiedAmountPtrOutput() BudgetAmountSpecifiedAmountPtrOutput

func (BudgetAmountSpecifiedAmountPtrOutput) ToBudgetAmountSpecifiedAmountPtrOutputWithContext

func (o BudgetAmountSpecifiedAmountPtrOutput) ToBudgetAmountSpecifiedAmountPtrOutputWithContext(ctx context.Context) BudgetAmountSpecifiedAmountPtrOutput

func (BudgetAmountSpecifiedAmountPtrOutput) Units

The whole units of the amount. For example if currencyCode is "USD", then 1 unit is one US dollar.

type BudgetArgs

type BudgetArgs struct {
	// Defines notifications that are sent on every update to the billing account's spend, regardless of the thresholds defined
	// using threshold rules.
	AllUpdatesRule BudgetAllUpdatesRulePtrInput
	// The budgeted amount for each usage period.
	// Structure is documented below.
	Amount BudgetAmountInput
	// ID of the billing account to set a budget on.
	BillingAccount pulumi.StringInput
	// Filters that define which resources are used to compute the actual spend against the budget.
	BudgetFilter BudgetBudgetFilterPtrInput
	// User data for display name in UI. Must be <= 60 chars.
	DisplayName pulumi.StringPtrInput
	// The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
	// budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
	OwnershipScope pulumi.StringPtrInput
	// Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
	// the budget.
	ThresholdRules BudgetThresholdRuleArrayInput
}

The set of arguments for constructing a Budget resource.

func (BudgetArgs) ElementType

func (BudgetArgs) ElementType() reflect.Type

type BudgetArray

type BudgetArray []BudgetInput

func (BudgetArray) ElementType

func (BudgetArray) ElementType() reflect.Type

func (BudgetArray) ToBudgetArrayOutput

func (i BudgetArray) ToBudgetArrayOutput() BudgetArrayOutput

func (BudgetArray) ToBudgetArrayOutputWithContext

func (i BudgetArray) ToBudgetArrayOutputWithContext(ctx context.Context) BudgetArrayOutput

type BudgetArrayInput

type BudgetArrayInput interface {
	pulumi.Input

	ToBudgetArrayOutput() BudgetArrayOutput
	ToBudgetArrayOutputWithContext(context.Context) BudgetArrayOutput
}

BudgetArrayInput is an input type that accepts BudgetArray and BudgetArrayOutput values. You can construct a concrete instance of `BudgetArrayInput` via:

BudgetArray{ BudgetArgs{...} }

type BudgetArrayOutput

type BudgetArrayOutput struct{ *pulumi.OutputState }

func (BudgetArrayOutput) ElementType

func (BudgetArrayOutput) ElementType() reflect.Type

func (BudgetArrayOutput) Index

func (BudgetArrayOutput) ToBudgetArrayOutput

func (o BudgetArrayOutput) ToBudgetArrayOutput() BudgetArrayOutput

func (BudgetArrayOutput) ToBudgetArrayOutputWithContext

func (o BudgetArrayOutput) ToBudgetArrayOutputWithContext(ctx context.Context) BudgetArrayOutput

type BudgetBudgetFilter

type BudgetBudgetFilter struct {
	// A CalendarPeriod represents the abstract concept of a recurring time period that has a
	// canonical start. Grammatically, "the start of the current CalendarPeriod".
	// All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).
	// Exactly one of `calendarPeriod`, `customPeriod` must be provided.
	// Possible values are: `MONTH`, `QUARTER`, `YEAR`, `CALENDAR_PERIOD_UNSPECIFIED`.
	CalendarPeriod *string `pulumi:"calendarPeriod"`
	// Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS,
	// this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values.
	// If creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty.
	// **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.
	CreditTypes []string `pulumi:"creditTypes"`
	// Specifies how credits should be treated when determining spend
	// for threshold calculations.
	// Default value is `INCLUDE_ALL_CREDITS`.
	// Possible values are: `INCLUDE_ALL_CREDITS`, `EXCLUDE_ALL_CREDITS`, `INCLUDE_SPECIFIED_CREDITS`.
	CreditTypesTreatment *string `pulumi:"creditTypesTreatment"`
	// Specifies to track usage from any start date (required) to any end date (optional).
	// This time period is static, it does not recur.
	// Exactly one of `calendarPeriod`, `customPeriod` must be provided.
	// Structure is documented below.
	CustomPeriod *BudgetBudgetFilterCustomPeriod `pulumi:"customPeriod"`
	// A single label and value pair specifying that usage from only
	// this set of labeled resources should be included in the budget.
	Labels map[string]string `pulumi:"labels"`
	// A set of projects of the form projects/{project_number},
	// specifying that usage from only this set of projects should be
	// included in the budget. If omitted, the report will include
	// all usage for the billing account, regardless of which project
	// the usage occurred on.
	Projects []string `pulumi:"projects"`
	// A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId},
	// specifying that usage from only this set of folders and organizations should be included in the budget.
	// If omitted, the budget includes all usage that the billing account pays for. If the folder or organization
	// contains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.
	ResourceAncestors []string `pulumi:"resourceAncestors"`
	// A set of services of the form services/{service_id},
	// specifying that usage from only this set of services should be
	// included in the budget. If omitted, the report will include
	// usage for all the services. The service names are available
	// through the Catalog API:
	// https://cloud.google.com/billing/v1/how-tos/catalog-api.
	Services []string `pulumi:"services"`
	// A set of subaccounts of the form billingAccounts/{account_id},
	// specifying that usage from only this set of subaccounts should
	// be included in the budget. If a subaccount is set to the name of
	// the parent account, usage from the parent account will be included.
	// If the field is omitted, the report will include usage from the parent
	// account and all subaccounts, if they exist.
	// **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.
	Subaccounts []string `pulumi:"subaccounts"`
}

type BudgetBudgetFilterArgs

type BudgetBudgetFilterArgs struct {
	// A CalendarPeriod represents the abstract concept of a recurring time period that has a
	// canonical start. Grammatically, "the start of the current CalendarPeriod".
	// All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).
	// Exactly one of `calendarPeriod`, `customPeriod` must be provided.
	// Possible values are: `MONTH`, `QUARTER`, `YEAR`, `CALENDAR_PERIOD_UNSPECIFIED`.
	CalendarPeriod pulumi.StringPtrInput `pulumi:"calendarPeriod"`
	// Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS,
	// this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values.
	// If creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty.
	// **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.
	CreditTypes pulumi.StringArrayInput `pulumi:"creditTypes"`
	// Specifies how credits should be treated when determining spend
	// for threshold calculations.
	// Default value is `INCLUDE_ALL_CREDITS`.
	// Possible values are: `INCLUDE_ALL_CREDITS`, `EXCLUDE_ALL_CREDITS`, `INCLUDE_SPECIFIED_CREDITS`.
	CreditTypesTreatment pulumi.StringPtrInput `pulumi:"creditTypesTreatment"`
	// Specifies to track usage from any start date (required) to any end date (optional).
	// This time period is static, it does not recur.
	// Exactly one of `calendarPeriod`, `customPeriod` must be provided.
	// Structure is documented below.
	CustomPeriod BudgetBudgetFilterCustomPeriodPtrInput `pulumi:"customPeriod"`
	// A single label and value pair specifying that usage from only
	// this set of labeled resources should be included in the budget.
	Labels pulumi.StringMapInput `pulumi:"labels"`
	// A set of projects of the form projects/{project_number},
	// specifying that usage from only this set of projects should be
	// included in the budget. If omitted, the report will include
	// all usage for the billing account, regardless of which project
	// the usage occurred on.
	Projects pulumi.StringArrayInput `pulumi:"projects"`
	// A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId},
	// specifying that usage from only this set of folders and organizations should be included in the budget.
	// If omitted, the budget includes all usage that the billing account pays for. If the folder or organization
	// contains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.
	ResourceAncestors pulumi.StringArrayInput `pulumi:"resourceAncestors"`
	// A set of services of the form services/{service_id},
	// specifying that usage from only this set of services should be
	// included in the budget. If omitted, the report will include
	// usage for all the services. The service names are available
	// through the Catalog API:
	// https://cloud.google.com/billing/v1/how-tos/catalog-api.
	Services pulumi.StringArrayInput `pulumi:"services"`
	// A set of subaccounts of the form billingAccounts/{account_id},
	// specifying that usage from only this set of subaccounts should
	// be included in the budget. If a subaccount is set to the name of
	// the parent account, usage from the parent account will be included.
	// If the field is omitted, the report will include usage from the parent
	// account and all subaccounts, if they exist.
	// **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.
	Subaccounts pulumi.StringArrayInput `pulumi:"subaccounts"`
}

func (BudgetBudgetFilterArgs) ElementType

func (BudgetBudgetFilterArgs) ElementType() reflect.Type

func (BudgetBudgetFilterArgs) ToBudgetBudgetFilterOutput

func (i BudgetBudgetFilterArgs) ToBudgetBudgetFilterOutput() BudgetBudgetFilterOutput

func (BudgetBudgetFilterArgs) ToBudgetBudgetFilterOutputWithContext

func (i BudgetBudgetFilterArgs) ToBudgetBudgetFilterOutputWithContext(ctx context.Context) BudgetBudgetFilterOutput

func (BudgetBudgetFilterArgs) ToBudgetBudgetFilterPtrOutput

func (i BudgetBudgetFilterArgs) ToBudgetBudgetFilterPtrOutput() BudgetBudgetFilterPtrOutput

func (BudgetBudgetFilterArgs) ToBudgetBudgetFilterPtrOutputWithContext

func (i BudgetBudgetFilterArgs) ToBudgetBudgetFilterPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterPtrOutput

type BudgetBudgetFilterCustomPeriod

type BudgetBudgetFilterCustomPeriod struct {
	// Optional. The end date of the time period. Budgets with elapsed end date won't be processed.
	// If unset, specifies to track all usage incurred since the startDate.
	// Structure is documented below.
	EndDate *BudgetBudgetFilterCustomPeriodEndDate `pulumi:"endDate"`
	// A start date is required. The start date must be after January 1, 2017.
	// Structure is documented below.
	StartDate BudgetBudgetFilterCustomPeriodStartDate `pulumi:"startDate"`
}

type BudgetBudgetFilterCustomPeriodArgs

type BudgetBudgetFilterCustomPeriodArgs struct {
	// Optional. The end date of the time period. Budgets with elapsed end date won't be processed.
	// If unset, specifies to track all usage incurred since the startDate.
	// Structure is documented below.
	EndDate BudgetBudgetFilterCustomPeriodEndDatePtrInput `pulumi:"endDate"`
	// A start date is required. The start date must be after January 1, 2017.
	// Structure is documented below.
	StartDate BudgetBudgetFilterCustomPeriodStartDateInput `pulumi:"startDate"`
}

func (BudgetBudgetFilterCustomPeriodArgs) ElementType

func (BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodOutput

func (i BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodOutput() BudgetBudgetFilterCustomPeriodOutput

func (BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodOutputWithContext

func (i BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodOutput

func (BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodPtrOutput

func (i BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodPtrOutput() BudgetBudgetFilterCustomPeriodPtrOutput

func (BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext

func (i BudgetBudgetFilterCustomPeriodArgs) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodPtrOutput

type BudgetBudgetFilterCustomPeriodEndDate

type BudgetBudgetFilterCustomPeriodEndDate struct {
	// Day of a month. Must be from 1 to 31 and valid for the year and month.
	Day int `pulumi:"day"`
	// Month of a year. Must be from 1 to 12.
	Month int `pulumi:"month"`
	// Year of the date. Must be from 1 to 9999.
	Year int `pulumi:"year"`
}

type BudgetBudgetFilterCustomPeriodEndDateArgs

type BudgetBudgetFilterCustomPeriodEndDateArgs struct {
	// Day of a month. Must be from 1 to 31 and valid for the year and month.
	Day pulumi.IntInput `pulumi:"day"`
	// Month of a year. Must be from 1 to 12.
	Month pulumi.IntInput `pulumi:"month"`
	// Year of the date. Must be from 1 to 9999.
	Year pulumi.IntInput `pulumi:"year"`
}

func (BudgetBudgetFilterCustomPeriodEndDateArgs) ElementType

func (BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDateOutput

func (i BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDateOutput() BudgetBudgetFilterCustomPeriodEndDateOutput

func (BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDateOutputWithContext

func (i BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDateOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodEndDateOutput

func (BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (i BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput() BudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext

func (i BudgetBudgetFilterCustomPeriodEndDateArgs) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodEndDatePtrOutput

type BudgetBudgetFilterCustomPeriodEndDateInput

type BudgetBudgetFilterCustomPeriodEndDateInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodEndDateOutput() BudgetBudgetFilterCustomPeriodEndDateOutput
	ToBudgetBudgetFilterCustomPeriodEndDateOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodEndDateOutput
}

BudgetBudgetFilterCustomPeriodEndDateInput is an input type that accepts BudgetBudgetFilterCustomPeriodEndDateArgs and BudgetBudgetFilterCustomPeriodEndDateOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodEndDateInput` via:

BudgetBudgetFilterCustomPeriodEndDateArgs{...}

type BudgetBudgetFilterCustomPeriodEndDateOutput

type BudgetBudgetFilterCustomPeriodEndDateOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodEndDateOutput) Day

Day of a month. Must be from 1 to 31 and valid for the year and month.

func (BudgetBudgetFilterCustomPeriodEndDateOutput) ElementType

func (BudgetBudgetFilterCustomPeriodEndDateOutput) Month

Month of a year. Must be from 1 to 12.

func (BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDateOutput

func (o BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDateOutput() BudgetBudgetFilterCustomPeriodEndDateOutput

func (BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDateOutputWithContext

func (o BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDateOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodEndDateOutput

func (BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (o BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput() BudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodEndDateOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (BudgetBudgetFilterCustomPeriodEndDateOutput) Year

Year of the date. Must be from 1 to 9999.

type BudgetBudgetFilterCustomPeriodEndDatePtrInput

type BudgetBudgetFilterCustomPeriodEndDatePtrInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput() BudgetBudgetFilterCustomPeriodEndDatePtrOutput
	ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodEndDatePtrOutput
}

BudgetBudgetFilterCustomPeriodEndDatePtrInput is an input type that accepts BudgetBudgetFilterCustomPeriodEndDateArgs, BudgetBudgetFilterCustomPeriodEndDatePtr and BudgetBudgetFilterCustomPeriodEndDatePtrOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodEndDatePtrInput` via:

        BudgetBudgetFilterCustomPeriodEndDateArgs{...}

or:

        nil

type BudgetBudgetFilterCustomPeriodEndDatePtrOutput

type BudgetBudgetFilterCustomPeriodEndDatePtrOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) Day

Day of a month. Must be from 1 to 31 and valid for the year and month.

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) Elem

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) ElementType

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) Month

Month of a year. Must be from 1 to 12.

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (o BudgetBudgetFilterCustomPeriodEndDatePtrOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutput() BudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodEndDatePtrOutput) ToBudgetBudgetFilterCustomPeriodEndDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodEndDatePtrOutput

func (BudgetBudgetFilterCustomPeriodEndDatePtrOutput) Year

Year of the date. Must be from 1 to 9999.

type BudgetBudgetFilterCustomPeriodInput

type BudgetBudgetFilterCustomPeriodInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodOutput() BudgetBudgetFilterCustomPeriodOutput
	ToBudgetBudgetFilterCustomPeriodOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodOutput
}

BudgetBudgetFilterCustomPeriodInput is an input type that accepts BudgetBudgetFilterCustomPeriodArgs and BudgetBudgetFilterCustomPeriodOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodInput` via:

BudgetBudgetFilterCustomPeriodArgs{...}

type BudgetBudgetFilterCustomPeriodOutput

type BudgetBudgetFilterCustomPeriodOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodOutput) ElementType

func (BudgetBudgetFilterCustomPeriodOutput) EndDate

Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the startDate. Structure is documented below.

func (BudgetBudgetFilterCustomPeriodOutput) StartDate

A start date is required. The start date must be after January 1, 2017. Structure is documented below.

func (BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodOutput

func (o BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodOutput() BudgetBudgetFilterCustomPeriodOutput

func (BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodOutputWithContext

func (o BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodOutput

func (BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodPtrOutput

func (o BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodPtrOutput() BudgetBudgetFilterCustomPeriodPtrOutput

func (BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodOutput) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodPtrOutput

type BudgetBudgetFilterCustomPeriodPtrInput

type BudgetBudgetFilterCustomPeriodPtrInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodPtrOutput() BudgetBudgetFilterCustomPeriodPtrOutput
	ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodPtrOutput
}

BudgetBudgetFilterCustomPeriodPtrInput is an input type that accepts BudgetBudgetFilterCustomPeriodArgs, BudgetBudgetFilterCustomPeriodPtr and BudgetBudgetFilterCustomPeriodPtrOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodPtrInput` via:

        BudgetBudgetFilterCustomPeriodArgs{...}

or:

        nil

type BudgetBudgetFilterCustomPeriodPtrOutput

type BudgetBudgetFilterCustomPeriodPtrOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodPtrOutput) Elem

func (BudgetBudgetFilterCustomPeriodPtrOutput) ElementType

func (BudgetBudgetFilterCustomPeriodPtrOutput) EndDate

Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the startDate. Structure is documented below.

func (BudgetBudgetFilterCustomPeriodPtrOutput) StartDate

A start date is required. The start date must be after January 1, 2017. Structure is documented below.

func (BudgetBudgetFilterCustomPeriodPtrOutput) ToBudgetBudgetFilterCustomPeriodPtrOutput

func (o BudgetBudgetFilterCustomPeriodPtrOutput) ToBudgetBudgetFilterCustomPeriodPtrOutput() BudgetBudgetFilterCustomPeriodPtrOutput

func (BudgetBudgetFilterCustomPeriodPtrOutput) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodPtrOutput) ToBudgetBudgetFilterCustomPeriodPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodPtrOutput

type BudgetBudgetFilterCustomPeriodStartDate

type BudgetBudgetFilterCustomPeriodStartDate struct {
	// Day of a month. Must be from 1 to 31 and valid for the year and month.
	Day int `pulumi:"day"`
	// Month of a year. Must be from 1 to 12.
	Month int `pulumi:"month"`
	// Year of the date. Must be from 1 to 9999.
	Year int `pulumi:"year"`
}

type BudgetBudgetFilterCustomPeriodStartDateArgs

type BudgetBudgetFilterCustomPeriodStartDateArgs struct {
	// Day of a month. Must be from 1 to 31 and valid for the year and month.
	Day pulumi.IntInput `pulumi:"day"`
	// Month of a year. Must be from 1 to 12.
	Month pulumi.IntInput `pulumi:"month"`
	// Year of the date. Must be from 1 to 9999.
	Year pulumi.IntInput `pulumi:"year"`
}

func (BudgetBudgetFilterCustomPeriodStartDateArgs) ElementType

func (BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDateOutput

func (i BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDateOutput() BudgetBudgetFilterCustomPeriodStartDateOutput

func (BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDateOutputWithContext

func (i BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDateOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodStartDateOutput

func (BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (i BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput() BudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext

func (i BudgetBudgetFilterCustomPeriodStartDateArgs) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodStartDatePtrOutput

type BudgetBudgetFilterCustomPeriodStartDateInput

type BudgetBudgetFilterCustomPeriodStartDateInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodStartDateOutput() BudgetBudgetFilterCustomPeriodStartDateOutput
	ToBudgetBudgetFilterCustomPeriodStartDateOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodStartDateOutput
}

BudgetBudgetFilterCustomPeriodStartDateInput is an input type that accepts BudgetBudgetFilterCustomPeriodStartDateArgs and BudgetBudgetFilterCustomPeriodStartDateOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodStartDateInput` via:

BudgetBudgetFilterCustomPeriodStartDateArgs{...}

type BudgetBudgetFilterCustomPeriodStartDateOutput

type BudgetBudgetFilterCustomPeriodStartDateOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodStartDateOutput) Day

Day of a month. Must be from 1 to 31 and valid for the year and month.

func (BudgetBudgetFilterCustomPeriodStartDateOutput) ElementType

func (BudgetBudgetFilterCustomPeriodStartDateOutput) Month

Month of a year. Must be from 1 to 12.

func (BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDateOutput

func (o BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDateOutput() BudgetBudgetFilterCustomPeriodStartDateOutput

func (BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDateOutputWithContext

func (o BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDateOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodStartDateOutput

func (BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (o BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput() BudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodStartDateOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (BudgetBudgetFilterCustomPeriodStartDateOutput) Year

Year of the date. Must be from 1 to 9999.

type BudgetBudgetFilterCustomPeriodStartDatePtrInput

type BudgetBudgetFilterCustomPeriodStartDatePtrInput interface {
	pulumi.Input

	ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput() BudgetBudgetFilterCustomPeriodStartDatePtrOutput
	ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext(context.Context) BudgetBudgetFilterCustomPeriodStartDatePtrOutput
}

BudgetBudgetFilterCustomPeriodStartDatePtrInput is an input type that accepts BudgetBudgetFilterCustomPeriodStartDateArgs, BudgetBudgetFilterCustomPeriodStartDatePtr and BudgetBudgetFilterCustomPeriodStartDatePtrOutput values. You can construct a concrete instance of `BudgetBudgetFilterCustomPeriodStartDatePtrInput` via:

        BudgetBudgetFilterCustomPeriodStartDateArgs{...}

or:

        nil

type BudgetBudgetFilterCustomPeriodStartDatePtrOutput

type BudgetBudgetFilterCustomPeriodStartDatePtrOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) Day

Day of a month. Must be from 1 to 31 and valid for the year and month.

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) Elem

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) ElementType

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) Month

Month of a year. Must be from 1 to 12.

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (o BudgetBudgetFilterCustomPeriodStartDatePtrOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutput() BudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext

func (o BudgetBudgetFilterCustomPeriodStartDatePtrOutput) ToBudgetBudgetFilterCustomPeriodStartDatePtrOutputWithContext(ctx context.Context) BudgetBudgetFilterCustomPeriodStartDatePtrOutput

func (BudgetBudgetFilterCustomPeriodStartDatePtrOutput) Year

Year of the date. Must be from 1 to 9999.

type BudgetBudgetFilterInput

type BudgetBudgetFilterInput interface {
	pulumi.Input

	ToBudgetBudgetFilterOutput() BudgetBudgetFilterOutput
	ToBudgetBudgetFilterOutputWithContext(context.Context) BudgetBudgetFilterOutput
}

BudgetBudgetFilterInput is an input type that accepts BudgetBudgetFilterArgs and BudgetBudgetFilterOutput values. You can construct a concrete instance of `BudgetBudgetFilterInput` via:

BudgetBudgetFilterArgs{...}

type BudgetBudgetFilterOutput

type BudgetBudgetFilterOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterOutput) CalendarPeriod

func (o BudgetBudgetFilterOutput) CalendarPeriod() pulumi.StringPtrOutput

A CalendarPeriod represents the abstract concept of a recurring time period that has a canonical start. Grammatically, "the start of the current CalendarPeriod". All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8). Exactly one of `calendarPeriod`, `customPeriod` must be provided. Possible values are: `MONTH`, `QUARTER`, `YEAR`, `CALENDAR_PERIOD_UNSPECIFIED`.

func (BudgetBudgetFilterOutput) CreditTypes

Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values. If creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty. **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.

func (BudgetBudgetFilterOutput) CreditTypesTreatment

func (o BudgetBudgetFilterOutput) CreditTypesTreatment() pulumi.StringPtrOutput

Specifies how credits should be treated when determining spend for threshold calculations. Default value is `INCLUDE_ALL_CREDITS`. Possible values are: `INCLUDE_ALL_CREDITS`, `EXCLUDE_ALL_CREDITS`, `INCLUDE_SPECIFIED_CREDITS`.

func (BudgetBudgetFilterOutput) CustomPeriod

Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur. Exactly one of `calendarPeriod`, `customPeriod` must be provided. Structure is documented below.

func (BudgetBudgetFilterOutput) ElementType

func (BudgetBudgetFilterOutput) ElementType() reflect.Type

func (BudgetBudgetFilterOutput) Labels

A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget.

func (BudgetBudgetFilterOutput) Projects

A set of projects of the form projects/{project_number}, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on.

func (BudgetBudgetFilterOutput) ResourceAncestors

func (o BudgetBudgetFilterOutput) ResourceAncestors() pulumi.StringArrayOutput

A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId}, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.

func (BudgetBudgetFilterOutput) Services

A set of services of the form services/{service_id}, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.

func (BudgetBudgetFilterOutput) Subaccounts

A set of subaccounts of the form billingAccounts/{account_id}, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If the field is omitted, the report will include usage from the parent account and all subaccounts, if they exist. **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.

func (BudgetBudgetFilterOutput) ToBudgetBudgetFilterOutput

func (o BudgetBudgetFilterOutput) ToBudgetBudgetFilterOutput() BudgetBudgetFilterOutput

func (BudgetBudgetFilterOutput) ToBudgetBudgetFilterOutputWithContext

func (o BudgetBudgetFilterOutput) ToBudgetBudgetFilterOutputWithContext(ctx context.Context) BudgetBudgetFilterOutput

func (BudgetBudgetFilterOutput) ToBudgetBudgetFilterPtrOutput

func (o BudgetBudgetFilterOutput) ToBudgetBudgetFilterPtrOutput() BudgetBudgetFilterPtrOutput

func (BudgetBudgetFilterOutput) ToBudgetBudgetFilterPtrOutputWithContext

func (o BudgetBudgetFilterOutput) ToBudgetBudgetFilterPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterPtrOutput

type BudgetBudgetFilterPtrInput

type BudgetBudgetFilterPtrInput interface {
	pulumi.Input

	ToBudgetBudgetFilterPtrOutput() BudgetBudgetFilterPtrOutput
	ToBudgetBudgetFilterPtrOutputWithContext(context.Context) BudgetBudgetFilterPtrOutput
}

BudgetBudgetFilterPtrInput is an input type that accepts BudgetBudgetFilterArgs, BudgetBudgetFilterPtr and BudgetBudgetFilterPtrOutput values. You can construct a concrete instance of `BudgetBudgetFilterPtrInput` via:

        BudgetBudgetFilterArgs{...}

or:

        nil

type BudgetBudgetFilterPtrOutput

type BudgetBudgetFilterPtrOutput struct{ *pulumi.OutputState }

func (BudgetBudgetFilterPtrOutput) CalendarPeriod

A CalendarPeriod represents the abstract concept of a recurring time period that has a canonical start. Grammatically, "the start of the current CalendarPeriod". All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8). Exactly one of `calendarPeriod`, `customPeriod` must be provided. Possible values are: `MONTH`, `QUARTER`, `YEAR`, `CALENDAR_PERIOD_UNSPECIFIED`.

func (BudgetBudgetFilterPtrOutput) CreditTypes

Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values. If creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty. **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.

func (BudgetBudgetFilterPtrOutput) CreditTypesTreatment

func (o BudgetBudgetFilterPtrOutput) CreditTypesTreatment() pulumi.StringPtrOutput

Specifies how credits should be treated when determining spend for threshold calculations. Default value is `INCLUDE_ALL_CREDITS`. Possible values are: `INCLUDE_ALL_CREDITS`, `EXCLUDE_ALL_CREDITS`, `INCLUDE_SPECIFIED_CREDITS`.

func (BudgetBudgetFilterPtrOutput) CustomPeriod

Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur. Exactly one of `calendarPeriod`, `customPeriod` must be provided. Structure is documented below.

func (BudgetBudgetFilterPtrOutput) Elem

func (BudgetBudgetFilterPtrOutput) ElementType

func (BudgetBudgetFilterPtrOutput) Labels

A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget.

func (BudgetBudgetFilterPtrOutput) Projects

A set of projects of the form projects/{project_number}, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on.

func (BudgetBudgetFilterPtrOutput) ResourceAncestors

A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId}, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.

func (BudgetBudgetFilterPtrOutput) Services

A set of services of the form services/{service_id}, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.

func (BudgetBudgetFilterPtrOutput) Subaccounts

A set of subaccounts of the form billingAccounts/{account_id}, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If the field is omitted, the report will include usage from the parent account and all subaccounts, if they exist. **Note:** If the field has a value in the config and needs to be removed, the field has to be an emtpy array in the config.

func (BudgetBudgetFilterPtrOutput) ToBudgetBudgetFilterPtrOutput

func (o BudgetBudgetFilterPtrOutput) ToBudgetBudgetFilterPtrOutput() BudgetBudgetFilterPtrOutput

func (BudgetBudgetFilterPtrOutput) ToBudgetBudgetFilterPtrOutputWithContext

func (o BudgetBudgetFilterPtrOutput) ToBudgetBudgetFilterPtrOutputWithContext(ctx context.Context) BudgetBudgetFilterPtrOutput

type BudgetInput

type BudgetInput interface {
	pulumi.Input

	ToBudgetOutput() BudgetOutput
	ToBudgetOutputWithContext(ctx context.Context) BudgetOutput
}

type BudgetMap

type BudgetMap map[string]BudgetInput

func (BudgetMap) ElementType

func (BudgetMap) ElementType() reflect.Type

func (BudgetMap) ToBudgetMapOutput

func (i BudgetMap) ToBudgetMapOutput() BudgetMapOutput

func (BudgetMap) ToBudgetMapOutputWithContext

func (i BudgetMap) ToBudgetMapOutputWithContext(ctx context.Context) BudgetMapOutput

type BudgetMapInput

type BudgetMapInput interface {
	pulumi.Input

	ToBudgetMapOutput() BudgetMapOutput
	ToBudgetMapOutputWithContext(context.Context) BudgetMapOutput
}

BudgetMapInput is an input type that accepts BudgetMap and BudgetMapOutput values. You can construct a concrete instance of `BudgetMapInput` via:

BudgetMap{ "key": BudgetArgs{...} }

type BudgetMapOutput

type BudgetMapOutput struct{ *pulumi.OutputState }

func (BudgetMapOutput) ElementType

func (BudgetMapOutput) ElementType() reflect.Type

func (BudgetMapOutput) MapIndex

func (BudgetMapOutput) ToBudgetMapOutput

func (o BudgetMapOutput) ToBudgetMapOutput() BudgetMapOutput

func (BudgetMapOutput) ToBudgetMapOutputWithContext

func (o BudgetMapOutput) ToBudgetMapOutputWithContext(ctx context.Context) BudgetMapOutput

type BudgetOutput

type BudgetOutput struct{ *pulumi.OutputState }

func (BudgetOutput) AllUpdatesRule

func (o BudgetOutput) AllUpdatesRule() BudgetAllUpdatesRulePtrOutput

Defines notifications that are sent on every update to the billing account's spend, regardless of the thresholds defined using threshold rules.

func (BudgetOutput) Amount

func (o BudgetOutput) Amount() BudgetAmountOutput

The budgeted amount for each usage period. Structure is documented below.

func (BudgetOutput) BillingAccount

func (o BudgetOutput) BillingAccount() pulumi.StringOutput

ID of the billing account to set a budget on.

func (BudgetOutput) BudgetFilter

func (o BudgetOutput) BudgetFilter() BudgetBudgetFilterOutput

Filters that define which resources are used to compute the actual spend against the budget.

func (BudgetOutput) DisplayName

func (o BudgetOutput) DisplayName() pulumi.StringPtrOutput

User data for display name in UI. Must be <= 60 chars.

func (BudgetOutput) ElementType

func (BudgetOutput) ElementType() reflect.Type

func (BudgetOutput) Name

func (o BudgetOutput) Name() pulumi.StringOutput

Resource name of the budget. The resource name implies the scope of a budget. Values are of the form billingAccounts/{billingAccountId}/budgets/{budgetId}.

func (BudgetOutput) OwnershipScope added in v7.20.0

func (o BudgetOutput) OwnershipScope() pulumi.StringPtrOutput

The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]

func (BudgetOutput) ThresholdRules

func (o BudgetOutput) ThresholdRules() BudgetThresholdRuleArrayOutput

Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget.

func (BudgetOutput) ToBudgetOutput

func (o BudgetOutput) ToBudgetOutput() BudgetOutput

func (BudgetOutput) ToBudgetOutputWithContext

func (o BudgetOutput) ToBudgetOutputWithContext(ctx context.Context) BudgetOutput

type BudgetState

type BudgetState struct {
	// Defines notifications that are sent on every update to the billing account's spend, regardless of the thresholds defined
	// using threshold rules.
	AllUpdatesRule BudgetAllUpdatesRulePtrInput
	// The budgeted amount for each usage period.
	// Structure is documented below.
	Amount BudgetAmountPtrInput
	// ID of the billing account to set a budget on.
	BillingAccount pulumi.StringPtrInput
	// Filters that define which resources are used to compute the actual spend against the budget.
	BudgetFilter BudgetBudgetFilterPtrInput
	// User data for display name in UI. Must be <= 60 chars.
	DisplayName pulumi.StringPtrInput
	// Resource name of the budget. The resource name
	// implies the scope of a budget. Values are of the form
	// billingAccounts/{billingAccountId}/budgets/{budgetId}.
	Name pulumi.StringPtrInput
	// The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
	// budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
	OwnershipScope pulumi.StringPtrInput
	// Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
	// the budget.
	ThresholdRules BudgetThresholdRuleArrayInput
}

func (BudgetState) ElementType

func (BudgetState) ElementType() reflect.Type

type BudgetThresholdRule

type BudgetThresholdRule struct {
	// The type of basis used to determine if spend has passed
	// the threshold.
	// Default value is `CURRENT_SPEND`.
	// Possible values are: `CURRENT_SPEND`, `FORECASTED_SPEND`.
	SpendBasis *string `pulumi:"spendBasis"`
	// Send an alert when this threshold is exceeded. This is a
	// 1.0-based percentage, so 0.5 = 50%. Must be >= 0.
	ThresholdPercent float64 `pulumi:"thresholdPercent"`
}

type BudgetThresholdRuleArgs

type BudgetThresholdRuleArgs struct {
	// The type of basis used to determine if spend has passed
	// the threshold.
	// Default value is `CURRENT_SPEND`.
	// Possible values are: `CURRENT_SPEND`, `FORECASTED_SPEND`.
	SpendBasis pulumi.StringPtrInput `pulumi:"spendBasis"`
	// Send an alert when this threshold is exceeded. This is a
	// 1.0-based percentage, so 0.5 = 50%. Must be >= 0.
	ThresholdPercent pulumi.Float64Input `pulumi:"thresholdPercent"`
}

func (BudgetThresholdRuleArgs) ElementType

func (BudgetThresholdRuleArgs) ElementType() reflect.Type

func (BudgetThresholdRuleArgs) ToBudgetThresholdRuleOutput

func (i BudgetThresholdRuleArgs) ToBudgetThresholdRuleOutput() BudgetThresholdRuleOutput

func (BudgetThresholdRuleArgs) ToBudgetThresholdRuleOutputWithContext

func (i BudgetThresholdRuleArgs) ToBudgetThresholdRuleOutputWithContext(ctx context.Context) BudgetThresholdRuleOutput

type BudgetThresholdRuleArray

type BudgetThresholdRuleArray []BudgetThresholdRuleInput

func (BudgetThresholdRuleArray) ElementType

func (BudgetThresholdRuleArray) ElementType() reflect.Type

func (BudgetThresholdRuleArray) ToBudgetThresholdRuleArrayOutput

func (i BudgetThresholdRuleArray) ToBudgetThresholdRuleArrayOutput() BudgetThresholdRuleArrayOutput

func (BudgetThresholdRuleArray) ToBudgetThresholdRuleArrayOutputWithContext

func (i BudgetThresholdRuleArray) ToBudgetThresholdRuleArrayOutputWithContext(ctx context.Context) BudgetThresholdRuleArrayOutput

type BudgetThresholdRuleArrayInput

type BudgetThresholdRuleArrayInput interface {
	pulumi.Input

	ToBudgetThresholdRuleArrayOutput() BudgetThresholdRuleArrayOutput
	ToBudgetThresholdRuleArrayOutputWithContext(context.Context) BudgetThresholdRuleArrayOutput
}

BudgetThresholdRuleArrayInput is an input type that accepts BudgetThresholdRuleArray and BudgetThresholdRuleArrayOutput values. You can construct a concrete instance of `BudgetThresholdRuleArrayInput` via:

BudgetThresholdRuleArray{ BudgetThresholdRuleArgs{...} }

type BudgetThresholdRuleArrayOutput

type BudgetThresholdRuleArrayOutput struct{ *pulumi.OutputState }

func (BudgetThresholdRuleArrayOutput) ElementType

func (BudgetThresholdRuleArrayOutput) Index

func (BudgetThresholdRuleArrayOutput) ToBudgetThresholdRuleArrayOutput

func (o BudgetThresholdRuleArrayOutput) ToBudgetThresholdRuleArrayOutput() BudgetThresholdRuleArrayOutput

func (BudgetThresholdRuleArrayOutput) ToBudgetThresholdRuleArrayOutputWithContext

func (o BudgetThresholdRuleArrayOutput) ToBudgetThresholdRuleArrayOutputWithContext(ctx context.Context) BudgetThresholdRuleArrayOutput

type BudgetThresholdRuleInput

type BudgetThresholdRuleInput interface {
	pulumi.Input

	ToBudgetThresholdRuleOutput() BudgetThresholdRuleOutput
	ToBudgetThresholdRuleOutputWithContext(context.Context) BudgetThresholdRuleOutput
}

BudgetThresholdRuleInput is an input type that accepts BudgetThresholdRuleArgs and BudgetThresholdRuleOutput values. You can construct a concrete instance of `BudgetThresholdRuleInput` via:

BudgetThresholdRuleArgs{...}

type BudgetThresholdRuleOutput

type BudgetThresholdRuleOutput struct{ *pulumi.OutputState }

func (BudgetThresholdRuleOutput) ElementType

func (BudgetThresholdRuleOutput) ElementType() reflect.Type

func (BudgetThresholdRuleOutput) SpendBasis

The type of basis used to determine if spend has passed the threshold. Default value is `CURRENT_SPEND`. Possible values are: `CURRENT_SPEND`, `FORECASTED_SPEND`.

func (BudgetThresholdRuleOutput) ThresholdPercent

func (o BudgetThresholdRuleOutput) ThresholdPercent() pulumi.Float64Output

Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Must be >= 0.

func (BudgetThresholdRuleOutput) ToBudgetThresholdRuleOutput

func (o BudgetThresholdRuleOutput) ToBudgetThresholdRuleOutput() BudgetThresholdRuleOutput

func (BudgetThresholdRuleOutput) ToBudgetThresholdRuleOutputWithContext

func (o BudgetThresholdRuleOutput) ToBudgetThresholdRuleOutputWithContext(ctx context.Context) BudgetThresholdRuleOutput

type LookupAccountIamPolicyArgs

type LookupAccountIamPolicyArgs struct {
	// The billing account id.
	BillingAccountId string `pulumi:"billingAccountId"`
}

A collection of arguments for invoking getAccountIamPolicy.

type LookupAccountIamPolicyOutputArgs

type LookupAccountIamPolicyOutputArgs struct {
	// The billing account id.
	BillingAccountId pulumi.StringInput `pulumi:"billingAccountId"`
}

A collection of arguments for invoking getAccountIamPolicy.

func (LookupAccountIamPolicyOutputArgs) ElementType

type LookupAccountIamPolicyResult

type LookupAccountIamPolicyResult struct {
	BillingAccountId string `pulumi:"billingAccountId"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Computed) The policy data
	PolicyData string `pulumi:"policyData"`
}

A collection of values returned by getAccountIamPolicy.

func LookupAccountIamPolicy

func LookupAccountIamPolicy(ctx *pulumi.Context, args *LookupAccountIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupAccountIamPolicyResult, error)

Retrieves the current IAM policy data for a Billing Account.

## example

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.LookupAccountIamPolicy(ctx, &billing.LookupAccountIamPolicyArgs{
			BillingAccountId: "MEEP-MEEP-MEEP-MEEP-MEEP",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupAccountIamPolicyResultOutput

type LookupAccountIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAccountIamPolicy.

func (LookupAccountIamPolicyResultOutput) BillingAccountId

func (LookupAccountIamPolicyResultOutput) ElementType

func (LookupAccountIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (LookupAccountIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupAccountIamPolicyResultOutput) PolicyData

(Computed) The policy data

func (LookupAccountIamPolicyResultOutput) ToLookupAccountIamPolicyResultOutput

func (o LookupAccountIamPolicyResultOutput) ToLookupAccountIamPolicyResultOutput() LookupAccountIamPolicyResultOutput

func (LookupAccountIamPolicyResultOutput) ToLookupAccountIamPolicyResultOutputWithContext

func (o LookupAccountIamPolicyResultOutput) ToLookupAccountIamPolicyResultOutputWithContext(ctx context.Context) LookupAccountIamPolicyResultOutput

type ProjectInfo

type ProjectInfo struct {
	pulumi.CustomResourceState

	// The ID of the billing account associated with the project, if
	// any. Set to empty string to disable billing for the project.
	// For example, `"012345-567890-ABCDEF"` or `""`.
	//
	// ***
	BillingAccount pulumi.StringOutput `pulumi:"billingAccount"`
	// 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"`
}

Billing information for a project.

To get more information about ProjectInfo, see:

* [API documentation](https://cloud.google.com/billing/docs/reference/rest/v1/projects) * How-to Guides

## Example Usage

### Billing Project Info Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId: pulumi.String("tf-test_15222"),
			Name:      pulumi.String("tf-test_81126"),
			OrgId:     pulumi.String("123456789"),
		})
		if err != nil {
			return err
		}
		_, err = billing.NewProjectInfo(ctx, "default", &billing.ProjectInfoArgs{
			Project:        project.ProjectId,
			BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ProjectInfo can be imported using any of these accepted formats:

* `projects/{{project}}`

* `{{project}}`

When using the `pulumi import` command, ProjectInfo can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:billing/projectInfo:ProjectInfo default projects/{{project}} ```

```sh $ pulumi import gcp:billing/projectInfo:ProjectInfo default {{project}} ```

func GetProjectInfo

func GetProjectInfo(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectInfoState, opts ...pulumi.ResourceOption) (*ProjectInfo, error)

GetProjectInfo gets an existing ProjectInfo 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 NewProjectInfo

func NewProjectInfo(ctx *pulumi.Context,
	name string, args *ProjectInfoArgs, opts ...pulumi.ResourceOption) (*ProjectInfo, error)

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

func (*ProjectInfo) ElementType

func (*ProjectInfo) ElementType() reflect.Type

func (*ProjectInfo) ToProjectInfoOutput

func (i *ProjectInfo) ToProjectInfoOutput() ProjectInfoOutput

func (*ProjectInfo) ToProjectInfoOutputWithContext

func (i *ProjectInfo) ToProjectInfoOutputWithContext(ctx context.Context) ProjectInfoOutput

type ProjectInfoArgs

type ProjectInfoArgs struct {
	// The ID of the billing account associated with the project, if
	// any. Set to empty string to disable billing for the project.
	// For example, `"012345-567890-ABCDEF"` or `""`.
	//
	// ***
	BillingAccount 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 ProjectInfo resource.

func (ProjectInfoArgs) ElementType

func (ProjectInfoArgs) ElementType() reflect.Type

type ProjectInfoArray

type ProjectInfoArray []ProjectInfoInput

func (ProjectInfoArray) ElementType

func (ProjectInfoArray) ElementType() reflect.Type

func (ProjectInfoArray) ToProjectInfoArrayOutput

func (i ProjectInfoArray) ToProjectInfoArrayOutput() ProjectInfoArrayOutput

func (ProjectInfoArray) ToProjectInfoArrayOutputWithContext

func (i ProjectInfoArray) ToProjectInfoArrayOutputWithContext(ctx context.Context) ProjectInfoArrayOutput

type ProjectInfoArrayInput

type ProjectInfoArrayInput interface {
	pulumi.Input

	ToProjectInfoArrayOutput() ProjectInfoArrayOutput
	ToProjectInfoArrayOutputWithContext(context.Context) ProjectInfoArrayOutput
}

ProjectInfoArrayInput is an input type that accepts ProjectInfoArray and ProjectInfoArrayOutput values. You can construct a concrete instance of `ProjectInfoArrayInput` via:

ProjectInfoArray{ ProjectInfoArgs{...} }

type ProjectInfoArrayOutput

type ProjectInfoArrayOutput struct{ *pulumi.OutputState }

func (ProjectInfoArrayOutput) ElementType

func (ProjectInfoArrayOutput) ElementType() reflect.Type

func (ProjectInfoArrayOutput) Index

func (ProjectInfoArrayOutput) ToProjectInfoArrayOutput

func (o ProjectInfoArrayOutput) ToProjectInfoArrayOutput() ProjectInfoArrayOutput

func (ProjectInfoArrayOutput) ToProjectInfoArrayOutputWithContext

func (o ProjectInfoArrayOutput) ToProjectInfoArrayOutputWithContext(ctx context.Context) ProjectInfoArrayOutput

type ProjectInfoInput

type ProjectInfoInput interface {
	pulumi.Input

	ToProjectInfoOutput() ProjectInfoOutput
	ToProjectInfoOutputWithContext(ctx context.Context) ProjectInfoOutput
}

type ProjectInfoMap

type ProjectInfoMap map[string]ProjectInfoInput

func (ProjectInfoMap) ElementType

func (ProjectInfoMap) ElementType() reflect.Type

func (ProjectInfoMap) ToProjectInfoMapOutput

func (i ProjectInfoMap) ToProjectInfoMapOutput() ProjectInfoMapOutput

func (ProjectInfoMap) ToProjectInfoMapOutputWithContext

func (i ProjectInfoMap) ToProjectInfoMapOutputWithContext(ctx context.Context) ProjectInfoMapOutput

type ProjectInfoMapInput

type ProjectInfoMapInput interface {
	pulumi.Input

	ToProjectInfoMapOutput() ProjectInfoMapOutput
	ToProjectInfoMapOutputWithContext(context.Context) ProjectInfoMapOutput
}

ProjectInfoMapInput is an input type that accepts ProjectInfoMap and ProjectInfoMapOutput values. You can construct a concrete instance of `ProjectInfoMapInput` via:

ProjectInfoMap{ "key": ProjectInfoArgs{...} }

type ProjectInfoMapOutput

type ProjectInfoMapOutput struct{ *pulumi.OutputState }

func (ProjectInfoMapOutput) ElementType

func (ProjectInfoMapOutput) ElementType() reflect.Type

func (ProjectInfoMapOutput) MapIndex

func (ProjectInfoMapOutput) ToProjectInfoMapOutput

func (o ProjectInfoMapOutput) ToProjectInfoMapOutput() ProjectInfoMapOutput

func (ProjectInfoMapOutput) ToProjectInfoMapOutputWithContext

func (o ProjectInfoMapOutput) ToProjectInfoMapOutputWithContext(ctx context.Context) ProjectInfoMapOutput

type ProjectInfoOutput

type ProjectInfoOutput struct{ *pulumi.OutputState }

func (ProjectInfoOutput) BillingAccount

func (o ProjectInfoOutput) BillingAccount() pulumi.StringOutput

The ID of the billing account associated with the project, if any. Set to empty string to disable billing for the project. For example, `"012345-567890-ABCDEF"` or `""`.

***

func (ProjectInfoOutput) ElementType

func (ProjectInfoOutput) ElementType() reflect.Type

func (ProjectInfoOutput) Project

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

func (ProjectInfoOutput) ToProjectInfoOutput

func (o ProjectInfoOutput) ToProjectInfoOutput() ProjectInfoOutput

func (ProjectInfoOutput) ToProjectInfoOutputWithContext

func (o ProjectInfoOutput) ToProjectInfoOutputWithContext(ctx context.Context) ProjectInfoOutput

type ProjectInfoState

type ProjectInfoState struct {
	// The ID of the billing account associated with the project, if
	// any. Set to empty string to disable billing for the project.
	// For example, `"012345-567890-ABCDEF"` or `""`.
	//
	// ***
	BillingAccount 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 (ProjectInfoState) ElementType

func (ProjectInfoState) ElementType() reflect.Type

type SubAccount

type SubAccount struct {
	pulumi.CustomResourceState

	// The billing account id.
	BillingAccountId pulumi.StringOutput `pulumi:"billingAccountId"`
	// If set to "RENAME_ON_DESTROY" the billing account displayName
	// will be changed to "Destroyed" along with a timestamp.  If set to "" this will not occur.
	// Default is "".
	DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"`
	// The display name of the billing account.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// The name of the master billing account that the subaccount
	// will be created under in the form `{billing_account_id}` or `billingAccounts/{billing_account_id}`.
	MasterBillingAccount pulumi.StringOutput `pulumi:"masterBillingAccount"`
	// The resource name of the billing account in the form `billingAccounts/{billing_account_id}`.
	Name pulumi.StringOutput `pulumi:"name"`
	// `true` if the billing account is open, `false` if the billing account is closed.
	Open pulumi.BoolOutput `pulumi:"open"`
}

Allows creation and management of a Google Cloud Billing Subaccount.

!> **WARNING:** Deleting this resource will not delete or close the billing subaccount.

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := billing.NewSubAccount(ctx, "subaccount", &billing.SubAccountArgs{
			DisplayName:          pulumi.String("My Billing Account"),
			MasterBillingAccount: pulumi.String("012345-567890-ABCDEF"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Billing Subaccounts can be imported using any of these accepted formats:

* `billingAccounts/{billing_account_id}`

When using the `pulumi import` command, Billing Subaccounts can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:billing/subAccount:SubAccount default billingAccounts/{billing_account_id} ```

func GetSubAccount

func GetSubAccount(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubAccountState, opts ...pulumi.ResourceOption) (*SubAccount, error)

GetSubAccount gets an existing SubAccount 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 NewSubAccount

func NewSubAccount(ctx *pulumi.Context,
	name string, args *SubAccountArgs, opts ...pulumi.ResourceOption) (*SubAccount, error)

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

func (*SubAccount) ElementType

func (*SubAccount) ElementType() reflect.Type

func (*SubAccount) ToSubAccountOutput

func (i *SubAccount) ToSubAccountOutput() SubAccountOutput

func (*SubAccount) ToSubAccountOutputWithContext

func (i *SubAccount) ToSubAccountOutputWithContext(ctx context.Context) SubAccountOutput

type SubAccountArgs

type SubAccountArgs struct {
	// If set to "RENAME_ON_DESTROY" the billing account displayName
	// will be changed to "Destroyed" along with a timestamp.  If set to "" this will not occur.
	// Default is "".
	DeletionPolicy pulumi.StringPtrInput
	// The display name of the billing account.
	DisplayName pulumi.StringInput
	// The name of the master billing account that the subaccount
	// will be created under in the form `{billing_account_id}` or `billingAccounts/{billing_account_id}`.
	MasterBillingAccount pulumi.StringInput
}

The set of arguments for constructing a SubAccount resource.

func (SubAccountArgs) ElementType

func (SubAccountArgs) ElementType() reflect.Type

type SubAccountArray

type SubAccountArray []SubAccountInput

func (SubAccountArray) ElementType

func (SubAccountArray) ElementType() reflect.Type

func (SubAccountArray) ToSubAccountArrayOutput

func (i SubAccountArray) ToSubAccountArrayOutput() SubAccountArrayOutput

func (SubAccountArray) ToSubAccountArrayOutputWithContext

func (i SubAccountArray) ToSubAccountArrayOutputWithContext(ctx context.Context) SubAccountArrayOutput

type SubAccountArrayInput

type SubAccountArrayInput interface {
	pulumi.Input

	ToSubAccountArrayOutput() SubAccountArrayOutput
	ToSubAccountArrayOutputWithContext(context.Context) SubAccountArrayOutput
}

SubAccountArrayInput is an input type that accepts SubAccountArray and SubAccountArrayOutput values. You can construct a concrete instance of `SubAccountArrayInput` via:

SubAccountArray{ SubAccountArgs{...} }

type SubAccountArrayOutput

type SubAccountArrayOutput struct{ *pulumi.OutputState }

func (SubAccountArrayOutput) ElementType

func (SubAccountArrayOutput) ElementType() reflect.Type

func (SubAccountArrayOutput) Index

func (SubAccountArrayOutput) ToSubAccountArrayOutput

func (o SubAccountArrayOutput) ToSubAccountArrayOutput() SubAccountArrayOutput

func (SubAccountArrayOutput) ToSubAccountArrayOutputWithContext

func (o SubAccountArrayOutput) ToSubAccountArrayOutputWithContext(ctx context.Context) SubAccountArrayOutput

type SubAccountInput

type SubAccountInput interface {
	pulumi.Input

	ToSubAccountOutput() SubAccountOutput
	ToSubAccountOutputWithContext(ctx context.Context) SubAccountOutput
}

type SubAccountMap

type SubAccountMap map[string]SubAccountInput

func (SubAccountMap) ElementType

func (SubAccountMap) ElementType() reflect.Type

func (SubAccountMap) ToSubAccountMapOutput

func (i SubAccountMap) ToSubAccountMapOutput() SubAccountMapOutput

func (SubAccountMap) ToSubAccountMapOutputWithContext

func (i SubAccountMap) ToSubAccountMapOutputWithContext(ctx context.Context) SubAccountMapOutput

type SubAccountMapInput

type SubAccountMapInput interface {
	pulumi.Input

	ToSubAccountMapOutput() SubAccountMapOutput
	ToSubAccountMapOutputWithContext(context.Context) SubAccountMapOutput
}

SubAccountMapInput is an input type that accepts SubAccountMap and SubAccountMapOutput values. You can construct a concrete instance of `SubAccountMapInput` via:

SubAccountMap{ "key": SubAccountArgs{...} }

type SubAccountMapOutput

type SubAccountMapOutput struct{ *pulumi.OutputState }

func (SubAccountMapOutput) ElementType

func (SubAccountMapOutput) ElementType() reflect.Type

func (SubAccountMapOutput) MapIndex

func (SubAccountMapOutput) ToSubAccountMapOutput

func (o SubAccountMapOutput) ToSubAccountMapOutput() SubAccountMapOutput

func (SubAccountMapOutput) ToSubAccountMapOutputWithContext

func (o SubAccountMapOutput) ToSubAccountMapOutputWithContext(ctx context.Context) SubAccountMapOutput

type SubAccountOutput

type SubAccountOutput struct{ *pulumi.OutputState }

func (SubAccountOutput) BillingAccountId

func (o SubAccountOutput) BillingAccountId() pulumi.StringOutput

The billing account id.

func (SubAccountOutput) DeletionPolicy

func (o SubAccountOutput) DeletionPolicy() pulumi.StringPtrOutput

If set to "RENAME_ON_DESTROY" the billing account displayName will be changed to "Destroyed" along with a timestamp. If set to "" this will not occur. Default is "".

func (SubAccountOutput) DisplayName

func (o SubAccountOutput) DisplayName() pulumi.StringOutput

The display name of the billing account.

func (SubAccountOutput) ElementType

func (SubAccountOutput) ElementType() reflect.Type

func (SubAccountOutput) MasterBillingAccount

func (o SubAccountOutput) MasterBillingAccount() pulumi.StringOutput

The name of the master billing account that the subaccount will be created under in the form `{billing_account_id}` or `billingAccounts/{billing_account_id}`.

func (SubAccountOutput) Name

The resource name of the billing account in the form `billingAccounts/{billing_account_id}`.

func (SubAccountOutput) Open

`true` if the billing account is open, `false` if the billing account is closed.

func (SubAccountOutput) ToSubAccountOutput

func (o SubAccountOutput) ToSubAccountOutput() SubAccountOutput

func (SubAccountOutput) ToSubAccountOutputWithContext

func (o SubAccountOutput) ToSubAccountOutputWithContext(ctx context.Context) SubAccountOutput

type SubAccountState

type SubAccountState struct {
	// The billing account id.
	BillingAccountId pulumi.StringPtrInput
	// If set to "RENAME_ON_DESTROY" the billing account displayName
	// will be changed to "Destroyed" along with a timestamp.  If set to "" this will not occur.
	// Default is "".
	DeletionPolicy pulumi.StringPtrInput
	// The display name of the billing account.
	DisplayName pulumi.StringPtrInput
	// The name of the master billing account that the subaccount
	// will be created under in the form `{billing_account_id}` or `billingAccounts/{billing_account_id}`.
	MasterBillingAccount pulumi.StringPtrInput
	// The resource name of the billing account in the form `billingAccounts/{billing_account_id}`.
	Name pulumi.StringPtrInput
	// `true` if the billing account is open, `false` if the billing account is closed.
	Open pulumi.BoolPtrInput
}

func (SubAccountState) ElementType

func (SubAccountState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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