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

com.tradeshift.sdk.assignments.TradeshiftAssignments Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2018 Tradeshift Inc. and/or its affiliates. All rights reserved.
 */
package com.tradeshift.sdk.assignments;

import java.util.concurrent.CompletionStage;

import com.tradeshift.sdk.assignments.domain.AssignmentClosed;
import com.tradeshift.sdk.assignments.domain.AssignmentFlagUpdated;
import com.tradeshift.sdk.assignments.domain.AssignmentLocked;
import com.tradeshift.sdk.assignments.domain.AssignmentOpened;
import com.tradeshift.sdk.assignments.domain.AssignmentSaved;
import com.tradeshift.sdk.assignments.domain.AutoAssignmentDeleted;
import com.tradeshift.sdk.assignments.domain.CloseAssignment;
import com.tradeshift.sdk.assignments.domain.DeleteAutoAssignment;
import com.tradeshift.sdk.assignments.domain.LockAssignment;
import com.tradeshift.sdk.assignments.domain.OpenAssignment;
import com.tradeshift.sdk.assignments.domain.SaveAssignment;
import com.tradeshift.sdk.assignments.domain.SetHoldFlag;
import com.tradeshift.sdk.assignments.domain.SetImportantFlag;

public interface TradeshiftAssignments {

    /**
     * Save an assignment.
     *
     * @param cmd request for saving an assignment
     * @return query command for requesting the assignment
     */
    CompletionStage saveAssignment(SaveAssignment cmd);

    /**
     * Open an assignment.
     *
     * @param cmd request for opening an assignment
     * @return query command for requesting the assignment
     */
    CompletionStage openAssignment(OpenAssignment cmd);

    /**
     * Lock an assignment.
     *
     * @param cmd request for locking an assignment
     * @return query command for requesting the assignment
     */
    CompletionStage lockAssignment(LockAssignment cmd);

    /**
     * Close an assignment.
     *
     * @param cmd request for closing an assignment
     * @return query command for requesting the assignment
     */
    CompletionStage closeAssignment(CloseAssignment cmd);

    /**
     * Set the important flag for an assignment.
     *
     * @param cmd request for marking an assignment important
     * @return query command for requesting the assignment with the important flag
     */
    CompletionStage setImportantFlagForAssignment(SetImportantFlag cmd);

    /**
     * Set the hold flag for an assignment.
     *
     * @param cmd request for marking an assignment as hold
     * @return query command for requesting the assignment with the hold flag
     */
    CompletionStage setHoldFlagForAssignment(SetHoldFlag cmd);

    /**
     * Delete an auto assignment.
     * @param cmd request for deleting an auto assignment
     * @return command for requesting the assignee
     */
    CompletionStage deleteAutoAssignment(DeleteAutoAssignment cmd);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy