// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.providerhub.models;

import com.azure.core.annotation.Fluent;
import java.util.List;

/** The ResourceTypeRegistrationProperties model. */
@Fluent
public final class ResourceTypeRegistrationProperties extends ResourceTypeRegistrationPropertiesAutoGenerated {
    /** Creates an instance of ResourceTypeRegistrationProperties class. */
    public ResourceTypeRegistrationProperties() {
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withRoutingType(RoutingType routingType) {
        super.withRoutingType(routingType);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withRegionality(Regionality regionality) {
        super.withRegionality(regionality);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withEndpoints(List<ResourceTypeEndpoint> endpoints) {
        super.withEndpoints(endpoints);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withExtensionOptions(
        ResourceTypeRegistrationPropertiesExtensionOptions extensionOptions) {
        super.withExtensionOptions(extensionOptions);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withMarketplaceType(MarketplaceType marketplaceType) {
        super.withMarketplaceType(marketplaceType);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withSwaggerSpecifications(
        List<SwaggerSpecification> swaggerSpecifications) {
        super.withSwaggerSpecifications(swaggerSpecifications);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withAllowedUnauthorizedActions(List<String> allowedUnauthorizedActions) {
        super.withAllowedUnauthorizedActions(allowedUnauthorizedActions);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withAuthorizationActionMappings(
        List<AuthorizationActionMapping> authorizationActionMappings) {
        super.withAuthorizationActionMappings(authorizationActionMappings);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withLinkedAccessChecks(List<LinkedAccessCheck> linkedAccessChecks) {
        super.withLinkedAccessChecks(linkedAccessChecks);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withDefaultApiVersion(String defaultApiVersion) {
        super.withDefaultApiVersion(defaultApiVersion);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withLoggingRules(List<LoggingRule> loggingRules) {
        super.withLoggingRules(loggingRules);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withThrottlingRules(List<ThrottlingRule> throttlingRules) {
        super.withThrottlingRules(throttlingRules);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withRequiredFeatures(List<String> requiredFeatures) {
        super.withRequiredFeatures(requiredFeatures);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withFeaturesRule(
        ResourceTypeRegistrationPropertiesFeaturesRule featuresRule) {
        super.withFeaturesRule(featuresRule);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withEnableAsyncOperation(Boolean enableAsyncOperation) {
        super.withEnableAsyncOperation(enableAsyncOperation);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withProvisioningState(ProvisioningState provisioningState) {
        super.withProvisioningState(provisioningState);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withEnableThirdPartyS2S(Boolean enableThirdPartyS2S) {
        super.withEnableThirdPartyS2S(enableThirdPartyS2S);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withSubscriptionLifecycleNotificationSpecifications(
        ResourceTypeRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications
            subscriptionLifecycleNotificationSpecifications) {
        super.withSubscriptionLifecycleNotificationSpecifications(subscriptionLifecycleNotificationSpecifications);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withIsPureProxy(Boolean isPureProxy) {
        super.withIsPureProxy(isPureProxy);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withIdentityManagement(
        ResourceTypeRegistrationPropertiesIdentityManagement identityManagement) {
        super.withIdentityManagement(identityManagement);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withCheckNameAvailabilitySpecifications(
        ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications checkNameAvailabilitySpecifications) {
        super.withCheckNameAvailabilitySpecifications(checkNameAvailabilitySpecifications);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withDisallowedActionVerbs(List<String> disallowedActionVerbs) {
        super.withDisallowedActionVerbs(disallowedActionVerbs);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withServiceTreeInfos(List<ServiceTreeInfo> serviceTreeInfos) {
        super.withServiceTreeInfos(serviceTreeInfos);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withRequestHeaderOptions(
        ResourceTypeRegistrationPropertiesRequestHeaderOptions requestHeaderOptions) {
        super.withRequestHeaderOptions(requestHeaderOptions);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withSubscriptionStateRules(
        List<SubscriptionStateRule> subscriptionStateRules) {
        super.withSubscriptionStateRules(subscriptionStateRules);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withTemplateDeploymentOptions(
        ResourceTypeRegistrationPropertiesTemplateDeploymentOptions templateDeploymentOptions) {
        super.withTemplateDeploymentOptions(templateDeploymentOptions);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withExtendedLocations(List<ExtendedLocationOptions> extendedLocations) {
        super.withExtendedLocations(extendedLocations);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withResourceMovePolicy(
        ResourceTypeRegistrationPropertiesResourceMovePolicy resourceMovePolicy) {
        super.withResourceMovePolicy(resourceMovePolicy);
        return this;
    }

    /** {@inheritDoc} */
    @Override
    public ResourceTypeRegistrationProperties withResourceDeletionPolicy(
        ResourceDeletionPolicy resourceDeletionPolicy) {
        super.withResourceDeletionPolicy(resourceDeletionPolicy);
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    @Override
    public void validate() {
        super.validate();
    }
}
