import * as core from "@terrascript/core"; export interface WorkspaceArgs extends core.ResourceArgs { /** * (Required) The type of account access for the workspace. Valid values are `CURRENT_ACCOUNT` and `ORG * ANIZATION`. If `ORGANIZATION` is specified, then `organizational_units` must also be present. */ accountAccessType: string | core.StringOut; /** * (Required) The authentication providers for the workspace. Valid values are `AWS_SSO`, `SAML`, or bo * th. */ authenticationProviders: core.Array | core.ArrayOut; /** * (Optional) The data sources for the workspace. Valid values are `AMAZON_OPENSEARCH_SERVICE`, `ATHENA * , `CLOUDWATCH`, `PROMETHEUS`, `REDSHIFT`, `SITEWISE`, `TIMESTREAM`, `XRAY` */ dataSources?: core.Array | core.ArrayOut; /** * (Optional) The workspace description. */ description?: string | core.StringOut; /** * (Optional) The Grafana workspace name. */ name?: string | core.StringOut; /** * (Optional) The notification destinations. If a data source is specified here, Amazon Managed Grafana * will create IAM roles and permissions needed to use these destinations. Must be set to `SNS`. */ notificationDestinations?: core.Array | core.ArrayOut; /** * (Optional) The role name that the workspace uses to access resources through Amazon Organizations. */ organizationRoleName?: string | core.StringOut; /** * (Optional) The Amazon Organizations organizational units that the workspace is authorized to use dat * a sources from. */ organizationalUnits?: core.Array | core.ArrayOut; /** * (Required) The permission type of the workspace. If `SERVICE_MANAGED` is specified, the IAM roles an * d IAM policy attachments are generated automatically. If `CUSTOMER_MANAGED` is specified, the IAM ro * les and IAM policy attachments will not be created. */ permissionType: string | core.StringOut; /** * (Optional) The IAM role ARN that the workspace assumes. */ roleArn?: string | core.StringOut; /** * (Optional) The AWS CloudFormation stack set name that provisions IAM roles to be used by the workspa * ce. */ stackSetName?: string | core.StringOut; /** * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu * ration-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; } export class Workspace extends core.Resource { /** * (Required) The type of account access for the workspace. Valid values are `CURRENT_ACCOUNT` and `ORG * ANIZATION`. If `ORGANIZATION` is specified, then `organizational_units` must also be present. */ @core.attr(String) public accountAccessType!: string | core.StringOut; /** * The Amazon Resource Name (ARN) of the Grafana workspace. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) The authentication providers for the workspace. Valid values are `AWS_SSO`, `SAML`, or bo * th. */ @core.attr(String, { kind: "array" }) public authenticationProviders!: | core.Array | core.ArrayOut; /** * (Optional) The data sources for the workspace. Valid values are `AMAZON_OPENSEARCH_SERVICE`, `ATHENA * , `CLOUDWATCH`, `PROMETHEUS`, `REDSHIFT`, `SITEWISE`, `TIMESTREAM`, `XRAY` */ @core.attr(String, { kind: "array" }) public dataSources?: core.Array | core.ArrayOut; /** * (Optional) The workspace description. */ @core.attr(String) public description?: string | core.StringOut; /** * The endpoint of the Grafana workspace. */ @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; /** * The version of Grafana running on the workspace. */ @core.attr(String, { computed: true }) public grafanaVersion!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The Grafana workspace name. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Optional) The notification destinations. If a data source is specified here, Amazon Managed Grafana * will create IAM roles and permissions needed to use these destinations. Must be set to `SNS`. */ @core.attr(String, { kind: "array" }) public notificationDestinations?: | core.Array | core.ArrayOut; /** * (Optional) The role name that the workspace uses to access resources through Amazon Organizations. */ @core.attr(String) public organizationRoleName?: string | core.StringOut; /** * (Optional) The Amazon Organizations organizational units that the workspace is authorized to use dat * a sources from. */ @core.attr(String, { kind: "array" }) public organizationalUnits?: | core.Array | core.ArrayOut; /** * (Required) The permission type of the workspace. If `SERVICE_MANAGED` is specified, the IAM roles an * d IAM policy attachments are generated automatically. If `CUSTOMER_MANAGED` is specified, the IAM ro * les and IAM policy attachments will not be created. */ @core.attr(String) public permissionType!: string | core.StringOut; /** * (Optional) The IAM role ARN that the workspace assumes. */ @core.attr(String) public roleArn?: string | core.StringOut; @core.attr(String, { computed: true }) public samlConfigurationStatus!: string | core.StringOut; /** * (Optional) The AWS CloudFormation stack set name that provisions IAM roles to be used by the workspa * ce. */ @core.attr(String) public stackSetName?: string | core.StringOut; /** * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu * ration-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: WorkspaceArgs) { super(name, "aws_grafana_workspace", args); } public override getNamespace(): string { return "aws_grafana"; } }