@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Transfer Family
@version 2018-11-05
@auth AWS SigV4
@endpoints 60
@hint download_for_search
@toc root(60)

@endpoint POST /
@required {Role: str, ServerId: str, ExternalId: str}
@optional {HomeDirectory: str, HomeDirectoryType: str, HomeDirectoryMappings: [HomeDirectoryMapEntry], Policy: str, PosixProfile: PosixProfile}
@returns(200) {ServerId: str, ExternalId: str}

@endpoint POST /
@required {ServerId: str, LocalProfileId: str, PartnerProfileId: str, BaseDirectory: str, AccessRole: str}
@optional {Description: str, Status: str, Tags: [Tag]}
@returns(200) {AgreementId: str}

@endpoint POST /
@required {Url: str, AccessRole: str}
@optional {As2Config: As2ConnectorConfig, LoggingRole: str, Tags: [Tag], SftpConfig: SftpConnectorConfig, SecurityPolicyName: str}
@returns(200) {ConnectorId: str}

@endpoint POST /
@required {As2Id: str, ProfileType: str}
@optional {CertificateIds: [str], Tags: [Tag]}
@returns(200) {ProfileId: str}

@endpoint POST /
@optional {Certificate: str, Domain: str, EndpointDetails: EndpointDetails, EndpointType: str, HostKey: str, IdentityProviderDetails: IdentityProviderDetails, IdentityProviderType: str, LoggingRole: str, PostAuthenticationLoginBanner: str, PreAuthenticationLoginBanner: str, Protocols: [str], ProtocolDetails: ProtocolDetails, SecurityPolicyName: str, Tags: [Tag], WorkflowDetails: WorkflowDetails, StructuredLogDestinations: [str], S3StorageOptions: S3StorageOptions}
@returns(200) {ServerId: str}

@endpoint POST /
@required {Role: str, ServerId: str, UserName: str}
@optional {HomeDirectory: str, HomeDirectoryType: str, HomeDirectoryMappings: [HomeDirectoryMapEntry], Policy: str, PosixProfile: PosixProfile, SshPublicKeyBody: str, Tags: [Tag]}
@returns(200) {ServerId: str, UserName: str}

@endpoint POST /
@required {Steps: [WorkflowStep]}
@optional {Description: str, OnExceptionSteps: [WorkflowStep], Tags: [Tag]}
@returns(200) {WorkflowId: str}

@endpoint POST /
@required {ServerId: str, ExternalId: str}

@endpoint POST /
@required {AgreementId: str, ServerId: str}

@endpoint POST /
@required {CertificateId: str}

@endpoint POST /
@required {ConnectorId: str}

@endpoint POST /
@required {ServerId: str, HostKeyId: str}

@endpoint POST /
@required {ProfileId: str}

@endpoint POST /
@required {ServerId: str}

@endpoint POST /
@required {ServerId: str, SshPublicKeyId: str, UserName: str}

@endpoint POST /
@required {ServerId: str, UserName: str}

@endpoint POST /
@required {WorkflowId: str}

@endpoint POST /
@required {ServerId: str, ExternalId: str}
@returns(200) {ServerId: str, Access: DescribedAccess{HomeDirectory: str?, HomeDirectoryMappings: [HomeDirectoryMapEntry]?, HomeDirectoryType: str?, Policy: str?, PosixProfile: PosixProfile?{Uid: int(i64), Gid: int(i64), SecondaryGids: [int(i64)]?}, Role: str?, ExternalId: str?}}

@endpoint POST /
@required {AgreementId: str, ServerId: str}
@returns(200) {Agreement: DescribedAgreement{Arn: str, AgreementId: str?, Description: str?, Status: str?, ServerId: str?, LocalProfileId: str?, PartnerProfileId: str?, BaseDirectory: str?, AccessRole: str?, Tags: [Tag]?}}

@endpoint POST /
@required {CertificateId: str}
@returns(200) {Certificate: DescribedCertificate{Arn: str, CertificateId: str?, Usage: str?, Status: str?, Certificate: str?, CertificateChain: str?, ActiveDate: str(timestamp)?, InactiveDate: str(timestamp)?, Serial: str?, NotBeforeDate: str(timestamp)?, NotAfterDate: str(timestamp)?, Type: str?, Description: str?, Tags: [Tag]?}}

@endpoint POST /
@required {ConnectorId: str}
@returns(200) {Connector: DescribedConnector{Arn: str, ConnectorId: str?, Url: str?, As2Config: As2ConnectorConfig?{LocalProfileId: str?, PartnerProfileId: str?, MessageSubject: str?, Compression: str?, EncryptionAlgorithm: str?, SigningAlgorithm: str?, MdnSigningAlgorithm: str?, MdnResponse: str?, BasicAuthSecretId: str?}, AccessRole: str?, LoggingRole: str?, Tags: [Tag]?, SftpConfig: SftpConnectorConfig?{UserSecretId: str?, TrustedHostKeys: [str]?}, ServiceManagedEgressIpAddresses: [str]?, SecurityPolicyName: str?}}

@endpoint POST /
@required {ExecutionId: str, WorkflowId: str}
@returns(200) {WorkflowId: str, Execution: DescribedExecution{ExecutionId: str?, InitialFileLocation: FileLocation?{S3FileLocation: S3FileLocation?{Bucket: str?, Key: str?, VersionId: str?, Etag: str?}, EfsFileLocation: EfsFileLocation?{FileSystemId: str?, Path: str?}}, ServiceMetadata: ServiceMetadata?{UserDetails: UserDetails{UserName: str, ServerId: str, SessionId: str?}}, ExecutionRole: str?, LoggingConfiguration: LoggingConfiguration?{LoggingRole: str?, LogGroupName: str?}, PosixProfile: PosixProfile?{Uid: int(i64), Gid: int(i64), SecondaryGids: [int(i64)]?}, Status: str?, Results: ExecutionResults?{Steps: [ExecutionStepResult]?, OnExceptionSteps: [ExecutionStepResult]?}}}

@endpoint POST /
@required {ServerId: str, HostKeyId: str}
@returns(200) {HostKey: DescribedHostKey{Arn: str, HostKeyId: str?, HostKeyFingerprint: str?, Description: str?, Type: str?, DateImported: str(timestamp)?, Tags: [Tag]?}}

@endpoint POST /
@required {ProfileId: str}
@returns(200) {Profile: DescribedProfile{Arn: str, ProfileId: str?, ProfileType: str?, As2Id: str?, CertificateIds: [str]?, Tags: [Tag]?}}

@endpoint POST /
@required {SecurityPolicyName: str}
@returns(200) {SecurityPolicy: DescribedSecurityPolicy{Fips: bool?, SecurityPolicyName: str, SshCiphers: [str]?, SshKexs: [str]?, SshMacs: [str]?, TlsCiphers: [str]?, SshHostKeyAlgorithms: [str]?, Type: str?, Protocols: [str]?}}

@endpoint POST /
@required {ServerId: str}
@returns(200) {Server: DescribedServer{Arn: str, Certificate: str?, ProtocolDetails: ProtocolDetails?{PassiveIp: str?, TlsSessionResumptionMode: str?, SetStatOption: str?, As2Transports: [str]?}, Domain: str?, EndpointDetails: EndpointDetails?{AddressAllocationIds: [str]?, SubnetIds: [str]?, VpcEndpointId: str?, VpcId: str?, SecurityGroupIds: [str]?}, EndpointType: str?, HostKeyFingerprint: str?, IdentityProviderDetails: IdentityProviderDetails?{Url: str?, InvocationRole: str?, DirectoryId: str?, Function: str?, SftpAuthenticationMethods: str?}, IdentityProviderType: str?, LoggingRole: str?, PostAuthenticationLoginBanner: str?, PreAuthenticationLoginBanner: str?, Protocols: [str]?, SecurityPolicyName: str?, ServerId: str?, State: str?, Tags: [Tag]?, UserCount: int?, WorkflowDetails: WorkflowDetails?{OnUpload: [WorkflowDetail]?, OnPartialUpload: [WorkflowDetail]?}, StructuredLogDestinations: [str]?, S3StorageOptions: S3StorageOptions?{DirectoryListingOptimization: str?}, As2ServiceManagedEgressIpAddresses: [str]?}}

@endpoint POST /
@required {ServerId: str, UserName: str}
@returns(200) {ServerId: str, User: DescribedUser{Arn: str, HomeDirectory: str?, HomeDirectoryMappings: [HomeDirectoryMapEntry]?, HomeDirectoryType: str?, Policy: str?, PosixProfile: PosixProfile?{Uid: int(i64), Gid: int(i64), SecondaryGids: [int(i64)]?}, Role: str?, SshPublicKeys: [SshPublicKey]?, Tags: [Tag]?, UserName: str?}}

@endpoint POST /
@required {WorkflowId: str}
@returns(200) {Workflow: DescribedWorkflow{Arn: str, Description: str?, Steps: [WorkflowStep]?, OnExceptionSteps: [WorkflowStep]?, WorkflowId: str?, Tags: [Tag]?}}

@endpoint POST /
@required {Usage: str, Certificate: str}
@optional {CertificateChain: str, PrivateKey: str, ActiveDate: str(timestamp), InactiveDate: str(timestamp), Description: str, Tags: [Tag]}
@returns(200) {CertificateId: str}

@endpoint POST /
@required {ServerId: str, HostKeyBody: str}
@optional {Description: str, Tags: [Tag]}
@returns(200) {ServerId: str, HostKeyId: str}

@endpoint POST /
@required {ServerId: str, SshPublicKeyBody: str, UserName: str}
@returns(200) {ServerId: str, SshPublicKeyId: str, UserName: str}

@endpoint POST /
@required {ServerId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, ServerId: str, Accesses: [ListedAccess]}

@endpoint POST /
@required {ServerId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Agreements: [ListedAgreement]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Certificates: [ListedCertificate]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Connectors: [ListedConnector]}

@endpoint POST /
@required {WorkflowId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, WorkflowId: str, Executions: [ListedExecution]}

@endpoint POST /
@required {ServerId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, ServerId: str, HostKeys: [ListedHostKey]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str, ProfileType: str}
@returns(200) {NextToken: str?, Profiles: [ListedProfile]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, SecurityPolicyNames: [str]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Servers: [ListedServer]}

@endpoint POST /
@required {Arn: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Arn: str?, NextToken: str?, Tags: [Tag]?}

@endpoint POST /
@required {ServerId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, ServerId: str, Users: [ListedUser]}

@endpoint POST /
@optional {MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, Workflows: [ListedWorkflow]}

@endpoint POST /
@required {WorkflowId: str, ExecutionId: str, Token: str, Status: str}

@endpoint POST /
@required {ConnectorId: str, RemoteDirectoryPath: str, OutputDirectoryPath: str}
@optional {MaxItems: int}
@returns(200) {ListingId: str, OutputFileName: str}

@endpoint POST /
@required {ConnectorId: str}
@optional {SendFilePaths: [str], RetrieveFilePaths: [str], LocalDirectoryPath: str, RemoteDirectoryPath: str}
@returns(200) {TransferId: str}

@endpoint POST /
@required {ServerId: str}

@endpoint POST /
@required {ServerId: str}

@endpoint POST /
@required {Arn: str, Tags: [Tag]}

@endpoint POST /
@required {ConnectorId: str}
@returns(200) {ConnectorId: str?, Status: str?, StatusMessage: str?}

@endpoint POST /
@required {ServerId: str, UserName: str}
@optional {ServerProtocol: str, SourceIp: str, UserPassword: str}
@returns(200) {Response: str?, StatusCode: int, Message: str?, Url: str}

@endpoint POST /
@required {Arn: str, TagKeys: [str]}

@endpoint POST /
@required {ServerId: str, ExternalId: str}
@optional {HomeDirectory: str, HomeDirectoryType: str, HomeDirectoryMappings: [HomeDirectoryMapEntry], Policy: str, PosixProfile: PosixProfile, Role: str}
@returns(200) {ServerId: str, ExternalId: str}

@endpoint POST /
@required {AgreementId: str, ServerId: str}
@optional {Description: str, Status: str, LocalProfileId: str, PartnerProfileId: str, BaseDirectory: str, AccessRole: str}
@returns(200) {AgreementId: str}

@endpoint POST /
@required {CertificateId: str}
@optional {ActiveDate: str(timestamp), InactiveDate: str(timestamp), Description: str}
@returns(200) {CertificateId: str}

@endpoint POST /
@required {ConnectorId: str}
@optional {Url: str, As2Config: As2ConnectorConfig, AccessRole: str, LoggingRole: str, SftpConfig: SftpConnectorConfig, SecurityPolicyName: str}
@returns(200) {ConnectorId: str}

@endpoint POST /
@required {ServerId: str, HostKeyId: str, Description: str}
@returns(200) {ServerId: str, HostKeyId: str}

@endpoint POST /
@required {ProfileId: str}
@optional {CertificateIds: [str]}
@returns(200) {ProfileId: str}

@endpoint POST /
@required {ServerId: str}
@optional {Certificate: str, ProtocolDetails: ProtocolDetails, EndpointDetails: EndpointDetails, EndpointType: str, HostKey: str, IdentityProviderDetails: IdentityProviderDetails, LoggingRole: str, PostAuthenticationLoginBanner: str, PreAuthenticationLoginBanner: str, Protocols: [str], SecurityPolicyName: str, WorkflowDetails: WorkflowDetails, StructuredLogDestinations: [str], S3StorageOptions: S3StorageOptions}
@returns(200) {ServerId: str}

@endpoint POST /
@required {ServerId: str, UserName: str}
@optional {HomeDirectory: str, HomeDirectoryType: str, HomeDirectoryMappings: [HomeDirectoryMapEntry], Policy: str, PosixProfile: PosixProfile, Role: str}
@returns(200) {ServerId: str, UserName: str}

@end
