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

com.pulumi.azurenative.datafactory.inputs.WebHookActivityArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.datafactory.inputs;

import com.pulumi.azurenative.datafactory.enums.ActivityOnInactiveMarkAs;
import com.pulumi.azurenative.datafactory.enums.ActivityState;
import com.pulumi.azurenative.datafactory.enums.WebHookActivityMethod;
import com.pulumi.azurenative.datafactory.inputs.ActivityDependencyArgs;
import com.pulumi.azurenative.datafactory.inputs.SecureInputOutputPolicyArgs;
import com.pulumi.azurenative.datafactory.inputs.UserPropertyArgs;
import com.pulumi.azurenative.datafactory.inputs.WebActivityAuthenticationArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * WebHook activity.
 * 
 */
public final class WebHookActivityArgs extends com.pulumi.resources.ResourceArgs {

    public static final WebHookActivityArgs Empty = new WebHookActivityArgs();

    /**
     * Authentication method used for calling the endpoint.
     * 
     */
    @Import(name="authentication")
    private @Nullable Output authentication;

    /**
     * @return Authentication method used for calling the endpoint.
     * 
     */
    public Optional> authentication() {
        return Optional.ofNullable(this.authentication);
    }

    /**
     * Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="body")
    private @Nullable Output body;

    /**
     * @return Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
     * 
     */
    public Optional> body() {
        return Optional.ofNullable(this.body);
    }

    /**
     * Activity depends on condition.
     * 
     */
    @Import(name="dependsOn")
    private @Nullable Output> dependsOn;

    /**
     * @return Activity depends on condition.
     * 
     */
    public Optional>> dependsOn() {
        return Optional.ofNullable(this.dependsOn);
    }

    /**
     * Activity description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Activity description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="headers")
    private @Nullable Output> headers;

    /**
     * @return Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
     * 
     */
    public Optional>> headers() {
        return Optional.ofNullable(this.headers);
    }

    /**
     * Rest API method for target endpoint.
     * 
     */
    @Import(name="method", required=true)
    private Output> method;

    /**
     * @return Rest API method for target endpoint.
     * 
     */
    public Output> method() {
        return this.method;
    }

    /**
     * Activity name.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Activity name.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
     * 
     */
    @Import(name="onInactiveMarkAs")
    private @Nullable Output> onInactiveMarkAs;

    /**
     * @return Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
     * 
     */
    public Optional>> onInactiveMarkAs() {
        return Optional.ofNullable(this.onInactiveMarkAs);
    }

    /**
     * Activity policy.
     * 
     */
    @Import(name="policy")
    private @Nullable Output policy;

    /**
     * @return Activity policy.
     * 
     */
    public Optional> policy() {
        return Optional.ofNullable(this.policy);
    }

    /**
     * When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="reportStatusOnCallBack")
    private @Nullable Output reportStatusOnCallBack;

    /**
     * @return When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> reportStatusOnCallBack() {
        return Optional.ofNullable(this.reportStatusOnCallBack);
    }

    /**
     * Activity state. This is an optional property and if not provided, the state will be Active by default.
     * 
     */
    @Import(name="state")
    private @Nullable Output> state;

    /**
     * @return Activity state. This is an optional property and if not provided, the state will be Active by default.
     * 
     */
    public Optional>> state() {
        return Optional.ofNullable(this.state);
    }

    /**
     * The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
     * 
     */
    @Import(name="timeout")
    private @Nullable Output timeout;

    /**
     * @return The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
     * 
     */
    public Optional> timeout() {
        return Optional.ofNullable(this.timeout);
    }

    /**
     * Type of activity.
     * Expected value is 'WebHook'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of activity.
     * Expected value is 'WebHook'.
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="url", required=true)
    private Output url;

    /**
     * @return WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
     * 
     */
    public Output url() {
        return this.url;
    }

    /**
     * Activity user properties.
     * 
     */
    @Import(name="userProperties")
    private @Nullable Output> userProperties;

    /**
     * @return Activity user properties.
     * 
     */
    public Optional>> userProperties() {
        return Optional.ofNullable(this.userProperties);
    }

    private WebHookActivityArgs() {}

    private WebHookActivityArgs(WebHookActivityArgs $) {
        this.authentication = $.authentication;
        this.body = $.body;
        this.dependsOn = $.dependsOn;
        this.description = $.description;
        this.headers = $.headers;
        this.method = $.method;
        this.name = $.name;
        this.onInactiveMarkAs = $.onInactiveMarkAs;
        this.policy = $.policy;
        this.reportStatusOnCallBack = $.reportStatusOnCallBack;
        this.state = $.state;
        this.timeout = $.timeout;
        this.type = $.type;
        this.url = $.url;
        this.userProperties = $.userProperties;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(WebHookActivityArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private WebHookActivityArgs $;

        public Builder() {
            $ = new WebHookActivityArgs();
        }

        public Builder(WebHookActivityArgs defaults) {
            $ = new WebHookActivityArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param authentication Authentication method used for calling the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder authentication(@Nullable Output authentication) {
            $.authentication = authentication;
            return this;
        }

        /**
         * @param authentication Authentication method used for calling the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder authentication(WebActivityAuthenticationArgs authentication) {
            return authentication(Output.of(authentication));
        }

        /**
         * @param body Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder body(@Nullable Output body) {
            $.body = body;
            return this;
        }

        /**
         * @param body Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder body(Object body) {
            return body(Output.of(body));
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(@Nullable Output> dependsOn) {
            $.dependsOn = dependsOn;
            return this;
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(List dependsOn) {
            return dependsOn(Output.of(dependsOn));
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(ActivityDependencyArgs... dependsOn) {
            return dependsOn(List.of(dependsOn));
        }

        /**
         * @param description Activity description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Activity description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param headers Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder headers(@Nullable Output> headers) {
            $.headers = headers;
            return this;
        }

        /**
         * @param headers Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder headers(Map headers) {
            return headers(Output.of(headers));
        }

        /**
         * @param method Rest API method for target endpoint.
         * 
         * @return builder
         * 
         */
        public Builder method(Output> method) {
            $.method = method;
            return this;
        }

        /**
         * @param method Rest API method for target endpoint.
         * 
         * @return builder
         * 
         */
        public Builder method(Either method) {
            return method(Output.of(method));
        }

        /**
         * @param method Rest API method for target endpoint.
         * 
         * @return builder
         * 
         */
        public Builder method(String method) {
            return method(Either.ofLeft(method));
        }

        /**
         * @param method Rest API method for target endpoint.
         * 
         * @return builder
         * 
         */
        public Builder method(WebHookActivityMethod method) {
            return method(Either.ofRight(method));
        }

        /**
         * @param name Activity name.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Activity name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(@Nullable Output> onInactiveMarkAs) {
            $.onInactiveMarkAs = onInactiveMarkAs;
            return this;
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(Either onInactiveMarkAs) {
            return onInactiveMarkAs(Output.of(onInactiveMarkAs));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(String onInactiveMarkAs) {
            return onInactiveMarkAs(Either.ofLeft(onInactiveMarkAs));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(ActivityOnInactiveMarkAs onInactiveMarkAs) {
            return onInactiveMarkAs(Either.ofRight(onInactiveMarkAs));
        }

        /**
         * @param policy Activity policy.
         * 
         * @return builder
         * 
         */
        public Builder policy(@Nullable Output policy) {
            $.policy = policy;
            return this;
        }

        /**
         * @param policy Activity policy.
         * 
         * @return builder
         * 
         */
        public Builder policy(SecureInputOutputPolicyArgs policy) {
            return policy(Output.of(policy));
        }

        /**
         * @param reportStatusOnCallBack When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder reportStatusOnCallBack(@Nullable Output reportStatusOnCallBack) {
            $.reportStatusOnCallBack = reportStatusOnCallBack;
            return this;
        }

        /**
         * @param reportStatusOnCallBack When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder reportStatusOnCallBack(Object reportStatusOnCallBack) {
            return reportStatusOnCallBack(Output.of(reportStatusOnCallBack));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(@Nullable Output> state) {
            $.state = state;
            return this;
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(Either state) {
            return state(Output.of(state));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(String state) {
            return state(Either.ofLeft(state));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(ActivityState state) {
            return state(Either.ofRight(state));
        }

        /**
         * @param timeout The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
         * 
         * @return builder
         * 
         */
        public Builder timeout(@Nullable Output timeout) {
            $.timeout = timeout;
            return this;
        }

        /**
         * @param timeout The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
         * 
         * @return builder
         * 
         */
        public Builder timeout(String timeout) {
            return timeout(Output.of(timeout));
        }

        /**
         * @param type Type of activity.
         * Expected value is 'WebHook'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of activity.
         * Expected value is 'WebHook'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param url WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder url(Output url) {
            $.url = url;
            return this;
        }

        /**
         * @param url WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder url(Object url) {
            return url(Output.of(url));
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(@Nullable Output> userProperties) {
            $.userProperties = userProperties;
            return this;
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(List userProperties) {
            return userProperties(Output.of(userProperties));
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(UserPropertyArgs... userProperties) {
            return userProperties(List.of(userProperties));
        }

        public WebHookActivityArgs build() {
            if ($.method == null) {
                throw new MissingRequiredPropertyException("WebHookActivityArgs", "method");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("WebHookActivityArgs", "name");
            }
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            if ($.url == null) {
                throw new MissingRequiredPropertyException("WebHookActivityArgs", "url");
            }
            return $;
        }
    }

}