import * as core from "@terrascript/core"; export interface SslPropertiesArgs extends core.SchemaArgs { disableSsl: boolean | core.BooleanOut; } export class SslProperties extends core.Schema { @core.attr(Boolean) public disableSsl!: boolean | core.BooleanOut; } export interface VpcConnectionPropertiesArgs extends core.SchemaArgs { vpcConnectionArn: string | core.StringOut; } export class VpcConnectionProperties extends core.Schema { @core.attr(String) public vpcConnectionArn!: string | core.StringOut; } export interface PermissionArgs extends core.SchemaArgs { actions: core.Array | core.ArrayOut; principal: string | core.StringOut; } export class Permission extends core.Schema { @core.attr(String, { kind: "array" }) public actions!: core.Array | core.ArrayOut; @core.attr(String) public principal!: string | core.StringOut; } export interface TwitterArgs extends core.SchemaArgs { maxRows: number | core.NumberOut; query: string | core.StringOut; } export class Twitter extends core.Schema { @core.attr(Number) public maxRows!: number | core.NumberOut; @core.attr(String) public query!: string | core.StringOut; } export interface AmazonElasticsearchArgs extends core.SchemaArgs { domain: string | core.StringOut; } export class AmazonElasticsearch extends core.Schema { @core.attr(String) public domain!: string | core.StringOut; } export interface PostgresqlArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Postgresql extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface PrestoArgs extends core.SchemaArgs { catalog: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Presto extends core.Schema { @core.attr(String) public catalog!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface SqlServerArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class SqlServer extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface RedshiftArgs extends core.SchemaArgs { clusterId?: string | core.StringOut; database: string | core.StringOut; host?: string | core.StringOut; port?: number | core.NumberOut; } export class Redshift extends core.Schema { @core.attr(String) public clusterId?: string | core.StringOut; @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host?: string | core.StringOut; @core.attr(Number) public port?: number | core.NumberOut; } export interface MysqlArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Mysql extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface SnowflakeArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; warehouse: string | core.StringOut; } export class Snowflake extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(String) public warehouse!: string | core.StringOut; } export interface AuroraPostgresqlArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class AuroraPostgresql extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface ManifestFileLocationArgs extends core.SchemaArgs { bucket: string | core.StringOut; key: string | core.StringOut; } export class ManifestFileLocation extends core.Schema { @core.attr(String) public bucket!: string | core.StringOut; @core.attr(String) public key!: string | core.StringOut; } export interface S3Args extends core.SchemaArgs { manifestFileLocation: ManifestFileLocation; } export class S3 extends core.Schema { @core.attr(ManifestFileLocation) public manifestFileLocation!: ManifestFileLocation; } export interface TeradataArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Teradata extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface AuroraArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Aurora extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface RdsArgs extends core.SchemaArgs { database: string | core.StringOut; instanceId: string | core.StringOut; } export class Rds extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public instanceId!: string | core.StringOut; } export interface MariaDbArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class MariaDb extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface AwsIotAnalyticsArgs extends core.SchemaArgs { dataSetName: string | core.StringOut; } export class AwsIotAnalytics extends core.Schema { @core.attr(String) public dataSetName!: string | core.StringOut; } export interface JiraArgs extends core.SchemaArgs { siteBaseUrl: string | core.StringOut; } export class Jira extends core.Schema { @core.attr(String) public siteBaseUrl!: string | core.StringOut; } export interface SparkArgs extends core.SchemaArgs { host: string | core.StringOut; port: number | core.NumberOut; } export class Spark extends core.Schema { @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface ServiceNowArgs extends core.SchemaArgs { siteBaseUrl: string | core.StringOut; } export class ServiceNow extends core.Schema { @core.attr(String) public siteBaseUrl!: string | core.StringOut; } export interface OracleArgs extends core.SchemaArgs { database: string | core.StringOut; host: string | core.StringOut; port: number | core.NumberOut; } export class Oracle extends core.Schema { @core.attr(String) public database!: string | core.StringOut; @core.attr(String) public host!: string | core.StringOut; @core.attr(Number) public port!: number | core.NumberOut; } export interface AthenaArgs extends core.SchemaArgs { workGroup?: string | core.StringOut; } export class Athena extends core.Schema { @core.attr(String) public workGroup?: string | core.StringOut; } export interface ParametersArgs extends core.SchemaArgs { amazonElasticsearch?: AmazonElasticsearch; athena?: Athena; aurora?: Aurora; auroraPostgresql?: AuroraPostgresql; awsIotAnalytics?: AwsIotAnalytics; jira?: Jira; mariaDb?: MariaDb; mysql?: Mysql; oracle?: Oracle; postgresql?: Postgresql; presto?: Presto; rds?: Rds; redshift?: Redshift; s3?: S3; serviceNow?: ServiceNow; snowflake?: Snowflake; spark?: Spark; sqlServer?: SqlServer; teradata?: Teradata; twitter?: Twitter; } export class Parameters extends core.Schema { @core.attr(AmazonElasticsearch) public amazonElasticsearch?: AmazonElasticsearch; @core.attr(Athena) public athena?: Athena; @core.attr(Aurora) public aurora?: Aurora; @core.attr(AuroraPostgresql) public auroraPostgresql?: AuroraPostgresql; @core.attr(AwsIotAnalytics) public awsIotAnalytics?: AwsIotAnalytics; @core.attr(Jira) public jira?: Jira; @core.attr(MariaDb) public mariaDb?: MariaDb; @core.attr(Mysql) public mysql?: Mysql; @core.attr(Oracle) public oracle?: Oracle; @core.attr(Postgresql) public postgresql?: Postgresql; @core.attr(Presto) public presto?: Presto; @core.attr(Rds) public rds?: Rds; @core.attr(Redshift) public redshift?: Redshift; @core.attr(S3) public s3?: S3; @core.attr(ServiceNow) public serviceNow?: ServiceNow; @core.attr(Snowflake) public snowflake?: Snowflake; @core.attr(Spark) public spark?: Spark; @core.attr(SqlServer) public sqlServer?: SqlServer; @core.attr(Teradata) public teradata?: Teradata; @core.attr(Twitter) public twitter?: Twitter; } export interface CredentialPairArgs extends core.SchemaArgs { password: string | core.StringOut; username: string | core.StringOut; } export class CredentialPair extends core.Schema { @core.attr(String) public password!: string | core.StringOut; @core.attr(String) public username!: string | core.StringOut; } export interface CredentialsArgs extends core.SchemaArgs { copySourceArn?: string | core.StringOut; credentialPair?: CredentialPair; } export class Credentials extends core.Schema { @core.attr(String) public copySourceArn?: string | core.StringOut; @core.attr(CredentialPair) public credentialPair?: CredentialPair; } export interface DataSourceArgs extends core.ResourceArgs { /** * (Optional, Forces new resource) The ID for the AWS account that the data source is in. Currently, yo * u use the ID for the AWS account that contains your Amazon QuickSight account. */ awsAccountId?: string | core.StringOut; /** * (Optional) The credentials Amazon QuickSight uses to connect to your underlying source. Currently, o * nly credentials based on user name and password are supported. See [Credentials](#credentials-argume * nt-reference) below for more details. */ credentials?: Credentials; /** * (Required, Forces new resource) An identifier for the data source. */ dataSourceId: string | core.StringOut; /** * (Required) A name for the data source, maximum of 128 characters. */ name: string | core.StringOut; /** * (Required) The [parameters](#parameters-argument-reference) used to connect to this data source (exa * ctly one). */ parameters: Parameters; /** * (Optional) A set of resource permissions on the data source. Maximum of 64 items. See [Permission](# * permission-argument-reference) below for more details. */ permission?: core.Array | core.ArrayOut; /** * (Optional) Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your u * nderlying source. See [SSL Properties](#ssl_properties-argument-reference) below for more details. */ sslProperties?: SslProperties; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quic * ksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the compl * ete list of valid values. */ type: string | core.StringOut; vpcConnectionProperties?: VpcConnectionProperties; } export class DataSource extends core.Resource { /** * Amazon Resource Name (ARN) of the data source */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional, Forces new resource) The ID for the AWS account that the data source is in. Currently, yo * u use the ID for the AWS account that contains your Amazon QuickSight account. */ @core.attr(String, { computed: true }) public awsAccountId?: string | core.StringOut; /** * (Optional) The credentials Amazon QuickSight uses to connect to your underlying source. Currently, o * nly credentials based on user name and password are supported. See [Credentials](#credentials-argume * nt-reference) below for more details. */ @core.attr(Credentials) public credentials?: Credentials; /** * (Required, Forces new resource) An identifier for the data source. */ @core.attr(String) public dataSourceId!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) A name for the data source, maximum of 128 characters. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) The [parameters](#parameters-argument-reference) used to connect to this data source (exa * ctly one). */ @core.attr(Parameters) public parameters!: Parameters; /** * (Optional) A set of resource permissions on the data source. Maximum of 64 items. See [Permission](# * permission-argument-reference) below for more details. */ @core.attr(Permission, { kind: "array" }) public permission?: core.Array | core.ArrayOut; /** * (Optional) Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your u * nderlying source. See [SSL Properties](#ssl_properties-argument-reference) below for more details. */ @core.attr(SslProperties) public sslProperties?: SslProperties; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-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; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Required) The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quic * ksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the compl * ete list of valid values. */ @core.attr(String) public type!: string | core.StringOut; @core.attr(VpcConnectionProperties) public vpcConnectionProperties?: VpcConnectionProperties; constructor(name: string, args?: DataSourceArgs) { super(name, "aws_quicksight_data_source", args); } public override getNamespace(): string { return "aws_quicksight"; } }