All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.fitko.fitconnect.api.domain.sender.steps.unencrypted.OptionalPropertiesStep Maven / Gradle / Ivy

Go to download

Library that provides client access to the FIT-Connect api-endpoints for sending, subscribing and routing

There is a newer version: 2.3.5
Show newest version
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(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy