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

package com.azure.resourcemanager.frontdoor.implementation;

import com.azure.resourcemanager.frontdoor.fluent.models.FrontendEndpointInner;
import com.azure.resourcemanager.frontdoor.models.CustomHttpsConfiguration;
import com.azure.resourcemanager.frontdoor.models.CustomHttpsProvisioningState;
import com.azure.resourcemanager.frontdoor.models.CustomHttpsProvisioningSubstate;
import com.azure.resourcemanager.frontdoor.models.FrontDoorResourceState;
import com.azure.resourcemanager.frontdoor.models.FrontendEndpoint;
import com.azure.resourcemanager.frontdoor.models.FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink;
import com.azure.resourcemanager.frontdoor.models.SessionAffinityEnabledState;

public final class FrontendEndpointImpl implements FrontendEndpoint {
    private FrontendEndpointInner innerObject;

    private final com.azure.resourcemanager.frontdoor.FrontDoorManager serviceManager;

    FrontendEndpointImpl(
        FrontendEndpointInner innerObject, com.azure.resourcemanager.frontdoor.FrontDoorManager serviceManager) {
        this.innerObject = innerObject;
        this.serviceManager = serviceManager;
    }

    public String id() {
        return this.innerModel().id();
    }

    public String name() {
        return this.innerModel().name();
    }

    public String type() {
        return this.innerModel().type();
    }

    public FrontDoorResourceState resourceState() {
        return this.innerModel().resourceState();
    }

    public CustomHttpsProvisioningState customHttpsProvisioningState() {
        return this.innerModel().customHttpsProvisioningState();
    }

    public CustomHttpsProvisioningSubstate customHttpsProvisioningSubstate() {
        return this.innerModel().customHttpsProvisioningSubstate();
    }

    public CustomHttpsConfiguration customHttpsConfiguration() {
        return this.innerModel().customHttpsConfiguration();
    }

    public String hostname() {
        return this.innerModel().hostname();
    }

    public SessionAffinityEnabledState sessionAffinityEnabledState() {
        return this.innerModel().sessionAffinityEnabledState();
    }

    public Integer sessionAffinityTtlSeconds() {
        return this.innerModel().sessionAffinityTtlSeconds();
    }

    public FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLink webApplicationFirewallPolicyLink() {
        return this.innerModel().webApplicationFirewallPolicyLink();
    }

    public FrontendEndpointInner innerModel() {
        return this.innerObject;
    }

    private com.azure.resourcemanager.frontdoor.FrontDoorManager manager() {
        return this.serviceManager;
    }
}
