import * as core from "@terrascript/core"; export interface GroupPolicyArgs extends core.ResourceArgs { /** * (Required) The IAM group to attach to the policy. */ group: string | core.StringOut; /** * (Optional) The name of the policy. If omitted, Terraform will */ name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified */ namePrefix?: string | core.StringOut; /** * (Required) The policy document. This is a JSON formatted string. For more information about building * IAM policy documents with Terraform, see the [AWS IAM Policy Document Guide](https://learn.hashicor * p.com/terraform/aws/iam-policy) */ policy: string | core.StringOut; } export class GroupPolicy extends core.Resource { /** * (Required) The IAM group to attach to the policy. */ @core.attr(String) public group!: string | core.StringOut; /** * The group policy ID. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The name of the policy. If omitted, Terraform will */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified */ @core.attr(String) public namePrefix?: string | core.StringOut; /** * (Required) The policy document. This is a JSON formatted string. For more information about building * IAM policy documents with Terraform, see the [AWS IAM Policy Document Guide](https://learn.hashicor * p.com/terraform/aws/iam-policy) */ @core.attr(String) public policy!: string | core.StringOut; constructor(name: string, args?: GroupPolicyArgs) { super(name, "aws_iam_group_policy", args); } public override getNamespace(): string { return "aws_iam"; } }