dev.fitko.fitconnect.api.domain.sender.steps.unencrypted.OptionalPropertiesStep Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of client Show documentation
Show all versions of client Show documentation
Library that provides client access to the FIT-Connect api-endpoints for sending, subscribing and
routing
package dev.fitko.fitconnect.api.domain.sender.steps.unencrypted;
import dev.fitko.fitconnect.api.domain.model.attachment.Attachment;
import dev.fitko.fitconnect.api.domain.model.callback.Callback;
import dev.fitko.fitconnect.api.domain.model.metadata.AuthenticationInformation;
import dev.fitko.fitconnect.api.domain.model.metadata.payment.PaymentInformation;
import dev.fitko.fitconnect.api.domain.model.reply.replychannel.ReplyChannel;
import dev.fitko.fitconnect.api.domain.sender.SendableSubmission;
import dev.fitko.fitconnect.api.domain.subscriber.ReceivedSubmission;
import java.net.URI;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;
public interface OptionalPropertiesStep {
/**
* Add a list of {@link Attachment}s to the sendable submission.
*
* @param attachments that are added to the existing attachments
* @return next step to set more optional properties
*/
OptionalPropertiesStep addAttachments(List attachments);
/**
* Add a new {@link Attachment} to the sendable submission.
*
* @param attachment that is added to a list of attachments
* @return next step to set more optional properties
*/
OptionalPropertiesStep addAttachment(Attachment attachment);
/**
* Add a reply channel. The {@link ReplyChannel} object provides static factories for all available options:
*
* - ReplyChannel.ofEmail(...)
* - ReplyChannel.ofDeMail(...)
* - ReplyChannel.ofFink(...)
* - ReplyChannel.ofElster(...)
* - ReplyChannel.ofFitConnect(...)
*
*
* @param replyChannel a configured reply channel
* @return next step to set more optional properties
* @see FIT-Connect documentation on reply channels
*/
OptionalPropertiesStep setReplyChannel(ReplyChannel replyChannel);
/**
* Set {@link AuthenticationInformation} that are necessary for the submission.
*
* @param authenticationInformation list of {@link AuthenticationInformation}
* @return next step to set more optional properties
* @see FIT-Connect documentation on authentication information
*/
OptionalPropertiesStep setAuthenticationInformation(List authenticationInformation);
/**
* Set {@link PaymentInformation} that contains information on the payment service.
* If the optional field is not set the service was not billed yet or is free of charge.
*
* @param paymentInformation the payment object containing transaction details
* @return next step to set more optional properties
* @see FIT-Connect documentation on payment information
*/
OptionalPropertiesStep setPaymentInformation(PaymentInformation paymentInformation);
/**
* Sets the application date when the submission was handed in.
* This date can differ from the technical date (issued at) the submission was sent via FIT-Connect.
*
* @return next step to set more optional properties
* @see ReceivedSubmission#getApplicationDate()
* @see ReceivedSubmission#getSubmittedAt()
*/
OptionalPropertiesStep setApplicationDate(LocalDate applicationDate);
/**
* Sets the id.bund.de applicationId.
*
* @param idBundDeApplicationId unique identifier of the applicationId
* @return next step to set more optional properties
*/
OptionalPropertiesStep setIdBundDeApplicationId(UUID idBundDeApplicationId);
/**
* Set {@link Callback} to get asynchronously notified about submission and reply status updates without polling.
*
* @param callbackUri URI that should be called to notify the sender
* @param callbackSecret secret to verify the callback
* @return next step to set more optional properties
* @see FIT-Connect documentation on callbacks
*/
OptionalPropertiesStep setCallback(URI callbackUri, String callbackSecret);
/**
* Add the new submission to an existing case.
*
* @param caseId unique identifier of the submissions case
* @return next step to set more optional properties
*/
OptionalPropertiesStep setCase(UUID caseId);
/**
* Constructs a new sendable submission from the data that is set.
*
* @return SendableSubmission
*/
SendableSubmission build();
}