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

com.pulumi.azurenative.apimanagement.ApiArgs 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.apimanagement;

import com.pulumi.azurenative.apimanagement.enums.ApiType;
import com.pulumi.azurenative.apimanagement.enums.ContentFormat;
import com.pulumi.azurenative.apimanagement.enums.Protocol;
import com.pulumi.azurenative.apimanagement.enums.SoapApiType;
import com.pulumi.azurenative.apimanagement.enums.TranslateRequiredQueryParametersConduct;
import com.pulumi.azurenative.apimanagement.inputs.ApiContactInformationArgs;
import com.pulumi.azurenative.apimanagement.inputs.ApiCreateOrUpdatePropertiesWsdlSelectorArgs;
import com.pulumi.azurenative.apimanagement.inputs.ApiLicenseInformationArgs;
import com.pulumi.azurenative.apimanagement.inputs.ApiVersionSetContractDetailsArgs;
import com.pulumi.azurenative.apimanagement.inputs.AuthenticationSettingsContractArgs;
import com.pulumi.azurenative.apimanagement.inputs.SubscriptionKeyParameterNamesContractArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ApiArgs extends com.pulumi.resources.ResourceArgs {

    public static final ApiArgs Empty = new ApiArgs();

    /**
     * API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
     * 
     */
    @Import(name="apiId")
    private @Nullable Output apiId;

    /**
     * @return API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
     * 
     */
    public Optional> apiId() {
        return Optional.ofNullable(this.apiId);
    }

    /**
     * Describes the revision of the API. If no value is provided, default revision 1 is created
     * 
     */
    @Import(name="apiRevision")
    private @Nullable Output apiRevision;

    /**
     * @return Describes the revision of the API. If no value is provided, default revision 1 is created
     * 
     */
    public Optional> apiRevision() {
        return Optional.ofNullable(this.apiRevision);
    }

    /**
     * Description of the API Revision.
     * 
     */
    @Import(name="apiRevisionDescription")
    private @Nullable Output apiRevisionDescription;

    /**
     * @return Description of the API Revision.
     * 
     */
    public Optional> apiRevisionDescription() {
        return Optional.ofNullable(this.apiRevisionDescription);
    }

    /**
     * Type of API.
     * 
     */
    @Import(name="apiType")
    private @Nullable Output> apiType;

    /**
     * @return Type of API.
     * 
     */
    public Optional>> apiType() {
        return Optional.ofNullable(this.apiType);
    }

    /**
     * Indicates the version identifier of the API if the API is versioned
     * 
     */
    @Import(name="apiVersion")
    private @Nullable Output apiVersion;

    /**
     * @return Indicates the version identifier of the API if the API is versioned
     * 
     */
    public Optional> apiVersion() {
        return Optional.ofNullable(this.apiVersion);
    }

    /**
     * Description of the API Version.
     * 
     */
    @Import(name="apiVersionDescription")
    private @Nullable Output apiVersionDescription;

    /**
     * @return Description of the API Version.
     * 
     */
    public Optional> apiVersionDescription() {
        return Optional.ofNullable(this.apiVersionDescription);
    }

    /**
     * Version set details
     * 
     */
    @Import(name="apiVersionSet")
    private @Nullable Output apiVersionSet;

    /**
     * @return Version set details
     * 
     */
    public Optional> apiVersionSet() {
        return Optional.ofNullable(this.apiVersionSet);
    }

    /**
     * A resource identifier for the related ApiVersionSet.
     * 
     */
    @Import(name="apiVersionSetId")
    private @Nullable Output apiVersionSetId;

    /**
     * @return A resource identifier for the related ApiVersionSet.
     * 
     */
    public Optional> apiVersionSetId() {
        return Optional.ofNullable(this.apiVersionSetId);
    }

    /**
     * Collection of authentication settings included into this API.
     * 
     */
    @Import(name="authenticationSettings")
    private @Nullable Output authenticationSettings;

    /**
     * @return Collection of authentication settings included into this API.
     * 
     */
    public Optional> authenticationSettings() {
        return Optional.ofNullable(this.authenticationSettings);
    }

    /**
     * Contact information for the API.
     * 
     */
    @Import(name="contact")
    private @Nullable Output contact;

    /**
     * @return Contact information for the API.
     * 
     */
    public Optional> contact() {
        return Optional.ofNullable(this.contact);
    }

    /**
     * Description of the API. May include HTML formatting tags.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the API. May include HTML formatting tags.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * API name. Must be 1 to 300 characters long.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return API name. Must be 1 to 300 characters long.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * Format of the Content in which the API is getting imported.
     * 
     */
    @Import(name="format")
    private @Nullable Output> format;

    /**
     * @return Format of the Content in which the API is getting imported.
     * 
     */
    public Optional>> format() {
        return Optional.ofNullable(this.format);
    }

    /**
     * Indicates if API revision is current api revision.
     * 
     */
    @Import(name="isCurrent")
    private @Nullable Output isCurrent;

    /**
     * @return Indicates if API revision is current api revision.
     * 
     */
    public Optional> isCurrent() {
        return Optional.ofNullable(this.isCurrent);
    }

    /**
     * License information for the API.
     * 
     */
    @Import(name="license")
    private @Nullable Output license;

    /**
     * @return License information for the API.
     * 
     */
    public Optional> license() {
        return Optional.ofNullable(this.license);
    }

    /**
     * Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
     * 
     */
    @Import(name="path", required=true)
    private Output path;

    /**
     * @return Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
     * 
     */
    public Output path() {
        return this.path;
    }

    /**
     * Describes on which protocols the operations in this API can be invoked.
     * 
     */
    @Import(name="protocols")
    private @Nullable Output>> protocols;

    /**
     * @return Describes on which protocols the operations in this API can be invoked.
     * 
     */
    public Optional>>> protocols() {
        return Optional.ofNullable(this.protocols);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The name of the API Management service.
     * 
     */
    @Import(name="serviceName", required=true)
    private Output serviceName;

    /**
     * @return The name of the API Management service.
     * 
     */
    public Output serviceName() {
        return this.serviceName;
    }

    /**
     * Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
     * 
     */
    @Import(name="serviceUrl")
    private @Nullable Output serviceUrl;

    /**
     * @return Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
     * 
     */
    public Optional> serviceUrl() {
        return Optional.ofNullable(this.serviceUrl);
    }

    /**
     * Type of API to create.
     *  * `http` creates a REST API
     *  * `soap` creates a SOAP pass-through API
     *  * `websocket` creates websocket API
     *  * `graphql` creates GraphQL API.
     * 
     */
    @Import(name="soapApiType")
    private @Nullable Output> soapApiType;

    /**
     * @return Type of API to create.
     *  * `http` creates a REST API
     *  * `soap` creates a SOAP pass-through API
     *  * `websocket` creates websocket API
     *  * `graphql` creates GraphQL API.
     * 
     */
    public Optional>> soapApiType() {
        return Optional.ofNullable(this.soapApiType);
    }

    /**
     * API identifier of the source API.
     * 
     */
    @Import(name="sourceApiId")
    private @Nullable Output sourceApiId;

    /**
     * @return API identifier of the source API.
     * 
     */
    public Optional> sourceApiId() {
        return Optional.ofNullable(this.sourceApiId);
    }

    /**
     * Protocols over which API is made available.
     * 
     */
    @Import(name="subscriptionKeyParameterNames")
    private @Nullable Output subscriptionKeyParameterNames;

    /**
     * @return Protocols over which API is made available.
     * 
     */
    public Optional> subscriptionKeyParameterNames() {
        return Optional.ofNullable(this.subscriptionKeyParameterNames);
    }

    /**
     * Specifies whether an API or Product subscription is required for accessing the API.
     * 
     */
    @Import(name="subscriptionRequired")
    private @Nullable Output subscriptionRequired;

    /**
     * @return Specifies whether an API or Product subscription is required for accessing the API.
     * 
     */
    public Optional> subscriptionRequired() {
        return Optional.ofNullable(this.subscriptionRequired);
    }

    /**
     *  A URL to the Terms of Service for the API. MUST be in the format of a URL.
     * 
     */
    @Import(name="termsOfServiceUrl")
    private @Nullable Output termsOfServiceUrl;

    /**
     * @return  A URL to the Terms of Service for the API. MUST be in the format of a URL.
     * 
     */
    public Optional> termsOfServiceUrl() {
        return Optional.ofNullable(this.termsOfServiceUrl);
    }

    /**
     * Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
     * 
     */
    @Import(name="translateRequiredQueryParametersConduct")
    private @Nullable Output> translateRequiredQueryParametersConduct;

    /**
     * @return Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
     * 
     */
    public Optional>> translateRequiredQueryParametersConduct() {
        return Optional.ofNullable(this.translateRequiredQueryParametersConduct);
    }

    /**
     * Content value when Importing an API.
     * 
     */
    @Import(name="value")
    private @Nullable Output value;

    /**
     * @return Content value when Importing an API.
     * 
     */
    public Optional> value() {
        return Optional.ofNullable(this.value);
    }

    /**
     * Criteria to limit import of WSDL to a subset of the document.
     * 
     */
    @Import(name="wsdlSelector")
    private @Nullable Output wsdlSelector;

    /**
     * @return Criteria to limit import of WSDL to a subset of the document.
     * 
     */
    public Optional> wsdlSelector() {
        return Optional.ofNullable(this.wsdlSelector);
    }

    private ApiArgs() {}

    private ApiArgs(ApiArgs $) {
        this.apiId = $.apiId;
        this.apiRevision = $.apiRevision;
        this.apiRevisionDescription = $.apiRevisionDescription;
        this.apiType = $.apiType;
        this.apiVersion = $.apiVersion;
        this.apiVersionDescription = $.apiVersionDescription;
        this.apiVersionSet = $.apiVersionSet;
        this.apiVersionSetId = $.apiVersionSetId;
        this.authenticationSettings = $.authenticationSettings;
        this.contact = $.contact;
        this.description = $.description;
        this.displayName = $.displayName;
        this.format = $.format;
        this.isCurrent = $.isCurrent;
        this.license = $.license;
        this.path = $.path;
        this.protocols = $.protocols;
        this.resourceGroupName = $.resourceGroupName;
        this.serviceName = $.serviceName;
        this.serviceUrl = $.serviceUrl;
        this.soapApiType = $.soapApiType;
        this.sourceApiId = $.sourceApiId;
        this.subscriptionKeyParameterNames = $.subscriptionKeyParameterNames;
        this.subscriptionRequired = $.subscriptionRequired;
        this.termsOfServiceUrl = $.termsOfServiceUrl;
        this.translateRequiredQueryParametersConduct = $.translateRequiredQueryParametersConduct;
        this.value = $.value;
        this.wsdlSelector = $.wsdlSelector;
    }

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

    public static final class Builder {
        private ApiArgs $;

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

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

        /**
         * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
         * 
         * @return builder
         * 
         */
        public Builder apiId(@Nullable Output apiId) {
            $.apiId = apiId;
            return this;
        }

        /**
         * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
         * 
         * @return builder
         * 
         */
        public Builder apiId(String apiId) {
            return apiId(Output.of(apiId));
        }

        /**
         * @param apiRevision Describes the revision of the API. If no value is provided, default revision 1 is created
         * 
         * @return builder
         * 
         */
        public Builder apiRevision(@Nullable Output apiRevision) {
            $.apiRevision = apiRevision;
            return this;
        }

        /**
         * @param apiRevision Describes the revision of the API. If no value is provided, default revision 1 is created
         * 
         * @return builder
         * 
         */
        public Builder apiRevision(String apiRevision) {
            return apiRevision(Output.of(apiRevision));
        }

        /**
         * @param apiRevisionDescription Description of the API Revision.
         * 
         * @return builder
         * 
         */
        public Builder apiRevisionDescription(@Nullable Output apiRevisionDescription) {
            $.apiRevisionDescription = apiRevisionDescription;
            return this;
        }

        /**
         * @param apiRevisionDescription Description of the API Revision.
         * 
         * @return builder
         * 
         */
        public Builder apiRevisionDescription(String apiRevisionDescription) {
            return apiRevisionDescription(Output.of(apiRevisionDescription));
        }

        /**
         * @param apiType Type of API.
         * 
         * @return builder
         * 
         */
        public Builder apiType(@Nullable Output> apiType) {
            $.apiType = apiType;
            return this;
        }

        /**
         * @param apiType Type of API.
         * 
         * @return builder
         * 
         */
        public Builder apiType(Either apiType) {
            return apiType(Output.of(apiType));
        }

        /**
         * @param apiType Type of API.
         * 
         * @return builder
         * 
         */
        public Builder apiType(String apiType) {
            return apiType(Either.ofLeft(apiType));
        }

        /**
         * @param apiType Type of API.
         * 
         * @return builder
         * 
         */
        public Builder apiType(ApiType apiType) {
            return apiType(Either.ofRight(apiType));
        }

        /**
         * @param apiVersion Indicates the version identifier of the API if the API is versioned
         * 
         * @return builder
         * 
         */
        public Builder apiVersion(@Nullable Output apiVersion) {
            $.apiVersion = apiVersion;
            return this;
        }

        /**
         * @param apiVersion Indicates the version identifier of the API if the API is versioned
         * 
         * @return builder
         * 
         */
        public Builder apiVersion(String apiVersion) {
            return apiVersion(Output.of(apiVersion));
        }

        /**
         * @param apiVersionDescription Description of the API Version.
         * 
         * @return builder
         * 
         */
        public Builder apiVersionDescription(@Nullable Output apiVersionDescription) {
            $.apiVersionDescription = apiVersionDescription;
            return this;
        }

        /**
         * @param apiVersionDescription Description of the API Version.
         * 
         * @return builder
         * 
         */
        public Builder apiVersionDescription(String apiVersionDescription) {
            return apiVersionDescription(Output.of(apiVersionDescription));
        }

        /**
         * @param apiVersionSet Version set details
         * 
         * @return builder
         * 
         */
        public Builder apiVersionSet(@Nullable Output apiVersionSet) {
            $.apiVersionSet = apiVersionSet;
            return this;
        }

        /**
         * @param apiVersionSet Version set details
         * 
         * @return builder
         * 
         */
        public Builder apiVersionSet(ApiVersionSetContractDetailsArgs apiVersionSet) {
            return apiVersionSet(Output.of(apiVersionSet));
        }

        /**
         * @param apiVersionSetId A resource identifier for the related ApiVersionSet.
         * 
         * @return builder
         * 
         */
        public Builder apiVersionSetId(@Nullable Output apiVersionSetId) {
            $.apiVersionSetId = apiVersionSetId;
            return this;
        }

        /**
         * @param apiVersionSetId A resource identifier for the related ApiVersionSet.
         * 
         * @return builder
         * 
         */
        public Builder apiVersionSetId(String apiVersionSetId) {
            return apiVersionSetId(Output.of(apiVersionSetId));
        }

        /**
         * @param authenticationSettings Collection of authentication settings included into this API.
         * 
         * @return builder
         * 
         */
        public Builder authenticationSettings(@Nullable Output authenticationSettings) {
            $.authenticationSettings = authenticationSettings;
            return this;
        }

        /**
         * @param authenticationSettings Collection of authentication settings included into this API.
         * 
         * @return builder
         * 
         */
        public Builder authenticationSettings(AuthenticationSettingsContractArgs authenticationSettings) {
            return authenticationSettings(Output.of(authenticationSettings));
        }

        /**
         * @param contact Contact information for the API.
         * 
         * @return builder
         * 
         */
        public Builder contact(@Nullable Output contact) {
            $.contact = contact;
            return this;
        }

        /**
         * @param contact Contact information for the API.
         * 
         * @return builder
         * 
         */
        public Builder contact(ApiContactInformationArgs contact) {
            return contact(Output.of(contact));
        }

        /**
         * @param description Description of the API. May include HTML formatting tags.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the API. May include HTML formatting tags.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param displayName API name. Must be 1 to 300 characters long.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName API name. Must be 1 to 300 characters long.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param format Format of the Content in which the API is getting imported.
         * 
         * @return builder
         * 
         */
        public Builder format(@Nullable Output> format) {
            $.format = format;
            return this;
        }

        /**
         * @param format Format of the Content in which the API is getting imported.
         * 
         * @return builder
         * 
         */
        public Builder format(Either format) {
            return format(Output.of(format));
        }

        /**
         * @param format Format of the Content in which the API is getting imported.
         * 
         * @return builder
         * 
         */
        public Builder format(String format) {
            return format(Either.ofLeft(format));
        }

        /**
         * @param format Format of the Content in which the API is getting imported.
         * 
         * @return builder
         * 
         */
        public Builder format(ContentFormat format) {
            return format(Either.ofRight(format));
        }

        /**
         * @param isCurrent Indicates if API revision is current api revision.
         * 
         * @return builder
         * 
         */
        public Builder isCurrent(@Nullable Output isCurrent) {
            $.isCurrent = isCurrent;
            return this;
        }

        /**
         * @param isCurrent Indicates if API revision is current api revision.
         * 
         * @return builder
         * 
         */
        public Builder isCurrent(Boolean isCurrent) {
            return isCurrent(Output.of(isCurrent));
        }

        /**
         * @param license License information for the API.
         * 
         * @return builder
         * 
         */
        public Builder license(@Nullable Output license) {
            $.license = license;
            return this;
        }

        /**
         * @param license License information for the API.
         * 
         * @return builder
         * 
         */
        public Builder license(ApiLicenseInformationArgs license) {
            return license(Output.of(license));
        }

        /**
         * @param path Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
         * 
         * @return builder
         * 
         */
        public Builder path(Output path) {
            $.path = path;
            return this;
        }

        /**
         * @param path Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
         * 
         * @return builder
         * 
         */
        public Builder path(String path) {
            return path(Output.of(path));
        }

        /**
         * @param protocols Describes on which protocols the operations in this API can be invoked.
         * 
         * @return builder
         * 
         */
        public Builder protocols(@Nullable Output>> protocols) {
            $.protocols = protocols;
            return this;
        }

        /**
         * @param protocols Describes on which protocols the operations in this API can be invoked.
         * 
         * @return builder
         * 
         */
        public Builder protocols(List> protocols) {
            return protocols(Output.of(protocols));
        }

        /**
         * @param protocols Describes on which protocols the operations in this API can be invoked.
         * 
         * @return builder
         * 
         */
        public Builder protocols(Either... protocols) {
            return protocols(List.of(protocols));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param serviceName The name of the API Management service.
         * 
         * @return builder
         * 
         */
        public Builder serviceName(Output serviceName) {
            $.serviceName = serviceName;
            return this;
        }

        /**
         * @param serviceName The name of the API Management service.
         * 
         * @return builder
         * 
         */
        public Builder serviceName(String serviceName) {
            return serviceName(Output.of(serviceName));
        }

        /**
         * @param serviceUrl Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
         * 
         * @return builder
         * 
         */
        public Builder serviceUrl(@Nullable Output serviceUrl) {
            $.serviceUrl = serviceUrl;
            return this;
        }

        /**
         * @param serviceUrl Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
         * 
         * @return builder
         * 
         */
        public Builder serviceUrl(String serviceUrl) {
            return serviceUrl(Output.of(serviceUrl));
        }

        /**
         * @param soapApiType Type of API to create.
         *  * `http` creates a REST API
         *  * `soap` creates a SOAP pass-through API
         *  * `websocket` creates websocket API
         *  * `graphql` creates GraphQL API.
         * 
         * @return builder
         * 
         */
        public Builder soapApiType(@Nullable Output> soapApiType) {
            $.soapApiType = soapApiType;
            return this;
        }

        /**
         * @param soapApiType Type of API to create.
         *  * `http` creates a REST API
         *  * `soap` creates a SOAP pass-through API
         *  * `websocket` creates websocket API
         *  * `graphql` creates GraphQL API.
         * 
         * @return builder
         * 
         */
        public Builder soapApiType(Either soapApiType) {
            return soapApiType(Output.of(soapApiType));
        }

        /**
         * @param soapApiType Type of API to create.
         *  * `http` creates a REST API
         *  * `soap` creates a SOAP pass-through API
         *  * `websocket` creates websocket API
         *  * `graphql` creates GraphQL API.
         * 
         * @return builder
         * 
         */
        public Builder soapApiType(String soapApiType) {
            return soapApiType(Either.ofLeft(soapApiType));
        }

        /**
         * @param soapApiType Type of API to create.
         *  * `http` creates a REST API
         *  * `soap` creates a SOAP pass-through API
         *  * `websocket` creates websocket API
         *  * `graphql` creates GraphQL API.
         * 
         * @return builder
         * 
         */
        public Builder soapApiType(SoapApiType soapApiType) {
            return soapApiType(Either.ofRight(soapApiType));
        }

        /**
         * @param sourceApiId API identifier of the source API.
         * 
         * @return builder
         * 
         */
        public Builder sourceApiId(@Nullable Output sourceApiId) {
            $.sourceApiId = sourceApiId;
            return this;
        }

        /**
         * @param sourceApiId API identifier of the source API.
         * 
         * @return builder
         * 
         */
        public Builder sourceApiId(String sourceApiId) {
            return sourceApiId(Output.of(sourceApiId));
        }

        /**
         * @param subscriptionKeyParameterNames Protocols over which API is made available.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionKeyParameterNames(@Nullable Output subscriptionKeyParameterNames) {
            $.subscriptionKeyParameterNames = subscriptionKeyParameterNames;
            return this;
        }

        /**
         * @param subscriptionKeyParameterNames Protocols over which API is made available.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionKeyParameterNames(SubscriptionKeyParameterNamesContractArgs subscriptionKeyParameterNames) {
            return subscriptionKeyParameterNames(Output.of(subscriptionKeyParameterNames));
        }

        /**
         * @param subscriptionRequired Specifies whether an API or Product subscription is required for accessing the API.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionRequired(@Nullable Output subscriptionRequired) {
            $.subscriptionRequired = subscriptionRequired;
            return this;
        }

        /**
         * @param subscriptionRequired Specifies whether an API or Product subscription is required for accessing the API.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionRequired(Boolean subscriptionRequired) {
            return subscriptionRequired(Output.of(subscriptionRequired));
        }

        /**
         * @param termsOfServiceUrl  A URL to the Terms of Service for the API. MUST be in the format of a URL.
         * 
         * @return builder
         * 
         */
        public Builder termsOfServiceUrl(@Nullable Output termsOfServiceUrl) {
            $.termsOfServiceUrl = termsOfServiceUrl;
            return this;
        }

        /**
         * @param termsOfServiceUrl  A URL to the Terms of Service for the API. MUST be in the format of a URL.
         * 
         * @return builder
         * 
         */
        public Builder termsOfServiceUrl(String termsOfServiceUrl) {
            return termsOfServiceUrl(Output.of(termsOfServiceUrl));
        }

        /**
         * @param translateRequiredQueryParametersConduct Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
         * 
         * @return builder
         * 
         */
        public Builder translateRequiredQueryParametersConduct(@Nullable Output> translateRequiredQueryParametersConduct) {
            $.translateRequiredQueryParametersConduct = translateRequiredQueryParametersConduct;
            return this;
        }

        /**
         * @param translateRequiredQueryParametersConduct Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
         * 
         * @return builder
         * 
         */
        public Builder translateRequiredQueryParametersConduct(Either translateRequiredQueryParametersConduct) {
            return translateRequiredQueryParametersConduct(Output.of(translateRequiredQueryParametersConduct));
        }

        /**
         * @param translateRequiredQueryParametersConduct Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
         * 
         * @return builder
         * 
         */
        public Builder translateRequiredQueryParametersConduct(String translateRequiredQueryParametersConduct) {
            return translateRequiredQueryParametersConduct(Either.ofLeft(translateRequiredQueryParametersConduct));
        }

        /**
         * @param translateRequiredQueryParametersConduct Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'
         * 
         * @return builder
         * 
         */
        public Builder translateRequiredQueryParametersConduct(TranslateRequiredQueryParametersConduct translateRequiredQueryParametersConduct) {
            return translateRequiredQueryParametersConduct(Either.ofRight(translateRequiredQueryParametersConduct));
        }

        /**
         * @param value Content value when Importing an API.
         * 
         * @return builder
         * 
         */
        public Builder value(@Nullable Output value) {
            $.value = value;
            return this;
        }

        /**
         * @param value Content value when Importing an API.
         * 
         * @return builder
         * 
         */
        public Builder value(String value) {
            return value(Output.of(value));
        }

        /**
         * @param wsdlSelector Criteria to limit import of WSDL to a subset of the document.
         * 
         * @return builder
         * 
         */
        public Builder wsdlSelector(@Nullable Output wsdlSelector) {
            $.wsdlSelector = wsdlSelector;
            return this;
        }

        /**
         * @param wsdlSelector Criteria to limit import of WSDL to a subset of the document.
         * 
         * @return builder
         * 
         */
        public Builder wsdlSelector(ApiCreateOrUpdatePropertiesWsdlSelectorArgs wsdlSelector) {
            return wsdlSelector(Output.of(wsdlSelector));
        }

        public ApiArgs build() {
            if ($.path == null) {
                throw new MissingRequiredPropertyException("ApiArgs", "path");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ApiArgs", "resourceGroupName");
            }
            if ($.serviceName == null) {
                throw new MissingRequiredPropertyException("ApiArgs", "serviceName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy