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

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

There is a newer version: 2.72.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.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.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The data stored in JSON format.
 * 
 */
public final class JsonFormatArgs extends com.pulumi.resources.ResourceArgs {

    public static final JsonFormatArgs Empty = new JsonFormatArgs();

    /**
     * Deserializer. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="deserializer")
    private @Nullable Output deserializer;

    /**
     * @return Deserializer. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> deserializer() {
        return Optional.ofNullable(this.deserializer);
    }

    /**
     * The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="encodingName")
    private @Nullable Output encodingName;

    /**
     * @return The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> encodingName() {
        return Optional.ofNullable(this.encodingName);
    }

    /**
     * File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
     * 
     */
    @Import(name="filePattern")
    private @Nullable Output filePattern;

    /**
     * @return File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
     * 
     */
    public Optional> filePattern() {
        return Optional.ofNullable(this.filePattern);
    }

    /**
     * The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="jsonNodeReference")
    private @Nullable Output jsonNodeReference;

    /**
     * @return The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
     * 
     */
    public Optional> jsonNodeReference() {
        return Optional.ofNullable(this.jsonNodeReference);
    }

    /**
     * The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
     * 
     */
    @Import(name="jsonPathDefinition")
    private @Nullable Output jsonPathDefinition;

    /**
     * @return The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
     * 
     */
    public Optional> jsonPathDefinition() {
        return Optional.ofNullable(this.jsonPathDefinition);
    }

    /**
     * The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="nestingSeparator")
    private @Nullable Output nestingSeparator;

    /**
     * @return The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
     * 
     */
    public Optional> nestingSeparator() {
        return Optional.ofNullable(this.nestingSeparator);
    }

    /**
     * Serializer. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="serializer")
    private @Nullable Output serializer;

    /**
     * @return Serializer. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> serializer() {
        return Optional.ofNullable(this.serializer);
    }

    /**
     * Type of dataset storage format.
     * Expected value is 'JsonFormat'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of dataset storage format.
     * Expected value is 'JsonFormat'.
     * 
     */
    public Output type() {
        return this.type;
    }

    private JsonFormatArgs() {}

    private JsonFormatArgs(JsonFormatArgs $) {
        this.deserializer = $.deserializer;
        this.encodingName = $.encodingName;
        this.filePattern = $.filePattern;
        this.jsonNodeReference = $.jsonNodeReference;
        this.jsonPathDefinition = $.jsonPathDefinition;
        this.nestingSeparator = $.nestingSeparator;
        this.serializer = $.serializer;
        this.type = $.type;
    }

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

    public static final class Builder {
        private JsonFormatArgs $;

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

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

        /**
         * @param deserializer Deserializer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder deserializer(@Nullable Output deserializer) {
            $.deserializer = deserializer;
            return this;
        }

        /**
         * @param deserializer Deserializer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder deserializer(Object deserializer) {
            return deserializer(Output.of(deserializer));
        }

        /**
         * @param encodingName The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder encodingName(@Nullable Output encodingName) {
            $.encodingName = encodingName;
            return this;
        }

        /**
         * @param encodingName The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder encodingName(Object encodingName) {
            return encodingName(Output.of(encodingName));
        }

        /**
         * @param filePattern File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
         * 
         * @return builder
         * 
         */
        public Builder filePattern(@Nullable Output filePattern) {
            $.filePattern = filePattern;
            return this;
        }

        /**
         * @param filePattern File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
         * 
         * @return builder
         * 
         */
        public Builder filePattern(Object filePattern) {
            return filePattern(Output.of(filePattern));
        }

        /**
         * @param jsonNodeReference The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder jsonNodeReference(@Nullable Output jsonNodeReference) {
            $.jsonNodeReference = jsonNodeReference;
            return this;
        }

        /**
         * @param jsonNodeReference The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder jsonNodeReference(Object jsonNodeReference) {
            return jsonNodeReference(Output.of(jsonNodeReference));
        }

        /**
         * @param jsonPathDefinition The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
         * 
         * @return builder
         * 
         */
        public Builder jsonPathDefinition(@Nullable Output jsonPathDefinition) {
            $.jsonPathDefinition = jsonPathDefinition;
            return this;
        }

        /**
         * @param jsonPathDefinition The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
         * 
         * @return builder
         * 
         */
        public Builder jsonPathDefinition(Object jsonPathDefinition) {
            return jsonPathDefinition(Output.of(jsonPathDefinition));
        }

        /**
         * @param nestingSeparator The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder nestingSeparator(@Nullable Output nestingSeparator) {
            $.nestingSeparator = nestingSeparator;
            return this;
        }

        /**
         * @param nestingSeparator The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder nestingSeparator(Object nestingSeparator) {
            return nestingSeparator(Output.of(nestingSeparator));
        }

        /**
         * @param serializer Serializer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder serializer(@Nullable Output serializer) {
            $.serializer = serializer;
            return this;
        }

        /**
         * @param serializer Serializer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder serializer(Object serializer) {
            return serializer(Output.of(serializer));
        }

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

        /**
         * @param type Type of dataset storage format.
         * Expected value is 'JsonFormat'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        public JsonFormatArgs build() {
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}