Source code for ecs_files_composer.input

# generated by datamodel-codegen:
#   filename:  ecs-files-input.json

from __future__ import annotations

from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional, Union

S3Uri = str


ComposeXUri = str


[docs]class Encoding(str, Enum): base64 = "base64" plain = "plain"
[docs]class Context(str, Enum): plain = "plain" jinja2 = "jinja2"
[docs]@dataclass class IgnoreFailureItem: commands: Optional[bool] = False mode: Optional[bool] = False owner: Optional[bool] = False source_download: Optional[bool] = False
[docs]@dataclass class UrlDef: Url: Optional[str] = None Username: Optional[str] = None Password: Optional[str] = None
[docs]@dataclass class IamOverrideDef: """ When source points to AWS, allows to indicate if another role should be used """ RoleArn: Optional[str] = None SessionName: Optional[str] = "S3File@EcsConfigComposer" ExternalId: Optional[str] = None RegionName: Optional[str] = None AccessKeyId: Optional[str] = None SecretAccessKey: Optional[str] = None SessionToken: Optional[str] = None
[docs]@dataclass class CommandsDefItem: """ Command to run with options """ command: Optional[str] = None display_output: Optional[bool] = False ignore_error: Optional[bool] = False
CommandsDef = List[Union[str, CommandsDefItem]]
[docs]@dataclass class X509CertDef: keyFileName: str certFileName: str dir_path: Optional[str] = None emailAddress: Optional[str] = "files-composer@compose-x.tld" commonName: Optional[str] = None countryName: Optional[str] = "ZZ" localityName: Optional[str] = "Anywhere" stateOrProvinceName: Optional[str] = "Shire" organizationName: Optional[str] = "NoOne" organizationUnitName: Optional[str] = "Automation" validityEndInSeconds: Optional[float] = 8035200 group: Optional[str] = "root" owner: Optional[str] = "root"
[docs]@dataclass class Certificates: x509: Optional[Dict[str, X509CertDef]] = None
[docs]@dataclass class Commands: post: Optional[CommandsDef] = None pre: Optional[CommandsDef] = None
[docs]@dataclass class SsmDef: ParameterName: Optional[str] = None IamOverride: Optional[IamOverrideDef] = None
[docs]@dataclass class SecretDef: SecretId: str VersionId: Optional[str] = None VersionStage: Optional[str] = None JsonKey: Optional[str] = None IamOverride: Optional[IamOverrideDef] = None
[docs]@dataclass class S3Def: S3Uri: Optional[S3Uri] = None ComposeXUri: Optional[ComposeXUri] = None BucketName: Optional[str] = None BucketRegion: Optional[str] = None Key: Optional[str] = None IamOverride: Optional[IamOverrideDef] = None
[docs]@dataclass class SourceDef: Url: Optional[UrlDef] = None Ssm: Optional[SsmDef] = None S3: Optional[S3Def] = None Secret: Optional[SecretDef] = None
[docs]@dataclass class FileDef: path: Optional[str] = None content: Optional[str] = None source: Optional[SourceDef] = None encoding: Optional[Encoding] = "plain" group: Optional[str] = "root" owner: Optional[str] = "root" mode: Optional[str] = "0644" context: Optional[Context] = "plain" ignore_failure: Optional[Union[IgnoreFailureItem, bool]] = None commands: Optional[Commands] = None
[docs]@dataclass class Model: """ Configuration input definition for ECS Files Composer """ files: Optional[Dict[str, FileDef]] = None certificates: Optional[Certificates] = None IamOverride: Optional[IamOverrideDef] = None