import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class FilterExpression { Expression ! : Value < string > ; ValuesMap ! : List < FilterValue > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PathParameter { PathParameterName ! : Value < string > ; DatasetParameter ! : DatasetParameter ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DatabaseInputDefinition { GlueConnectionName ? : Value < string > ; DatabaseTableName ? : Value < string > ; TempDirectory ? : S3Location ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PathOptions { FilesLimit ? : FilesLimit ; LastModifiedDateCondition ? : FilterExpression ; Parameters ? : List < PathParameter > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DatasetParameter { Name ! : Value < string > ; Type ! : Value < string > ; DatetimeOptions ? : DatetimeOptions ; CreateColumn ? : Value < boolean > ; Filter ? : FilterExpression ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FilesLimit { MaxFiles ! : Value < number > ; OrderedBy ? : Value < string > ; Order ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CsvOptions { Delimiter ? : Value < string > ; HeaderRow ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FormatOptions { Json ? : JsonOptions ; Excel ? : ExcelOptions ; Csv ? : CsvOptions ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ExcelOptions { SheetNames ? : List < Value < string > > ; SheetIndexes ? : List < Value < number > > ; HeaderRow ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class JsonOptions { MultiLine ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Input { S3InputDefinition ? : S3Location ; DataCatalogInputDefinition ? : DataCatalogInputDefinition ; DatabaseInputDefinition ? : DatabaseInputDefinition ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FilterValue { ValueReference ! : Value < string > ; Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DataCatalogInputDefinition { CatalogId ? : Value < string > ; DatabaseName ? : Value < string > ; TableName ? : Value < string > ; TempDirectory ? : S3Location ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DatetimeOptions { Format ! : Value < string > ; TimezoneOffset ? : Value < string > ; LocaleCode ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3Location { Bucket ! : Value < string > ; Key ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface DatasetProperties { Name : Value < string > ; Format ? : Value < string > ; FormatOptions ? : FormatOptions ; Input : Input ; PathOptions ? : PathOptions ; Tags ? : List < ResourceTag > ; } export default class Dataset extends ResourceBase < DatasetProperties > { static FilterExpression = FilterExpression ; static PathParameter = PathParameter ; static DatabaseInputDefinition = DatabaseInputDefinition ; static PathOptions = PathOptions ; static DatasetParameter = DatasetParameter ; static FilesLimit = FilesLimit ; static CsvOptions = CsvOptions ; static FormatOptions = FormatOptions ; static ExcelOptions = ExcelOptions ; static JsonOptions = JsonOptions ; static Input = Input ; static FilterValue = FilterValue ; static DataCatalogInputDefinition = DataCatalogInputDefinition ; static DatetimeOptions = DatetimeOptions ; static S3Location = S3Location ; constructor ( properties ) { super ( 'AWS::DataBrew::Dataset' , properties ) ; } }