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

package com.azure.resourcemanager.paloaltonetworks.ngfw.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** security services. */
@Fluent
public final class SecurityServices {
    /*
     * IPs Vulnerability Profile Data
     */
    @JsonProperty(value = "vulnerabilityProfile")
    private String vulnerabilityProfile;

    /*
     * Anti spyware Profile data
     */
    @JsonProperty(value = "antiSpywareProfile")
    private String antiSpywareProfile;

    /*
     * anti virus profile data
     */
    @JsonProperty(value = "antiVirusProfile")
    private String antiVirusProfile;

    /*
     * URL filtering profile data
     */
    @JsonProperty(value = "urlFilteringProfile")
    private String urlFilteringProfile;

    /*
     * File blocking profile data
     */
    @JsonProperty(value = "fileBlockingProfile")
    private String fileBlockingProfile;

    /*
     * DNS Subscription profile data
     */
    @JsonProperty(value = "dnsSubscription")
    private String dnsSubscription;

    /*
     * Untrusted Egress Decryption profile data
     */
    @JsonProperty(value = "outboundUnTrustCertificate")
    private String outboundUnTrustCertificate;

    /*
     * Trusted Egress Decryption profile data
     */
    @JsonProperty(value = "outboundTrustCertificate")
    private String outboundTrustCertificate;

    /** Creates an instance of SecurityServices class. */
    public SecurityServices() {
    }

    /**
     * Get the vulnerabilityProfile property: IPs Vulnerability Profile Data.
     *
     * @return the vulnerabilityProfile value.
     */
    public String vulnerabilityProfile() {
        return this.vulnerabilityProfile;
    }

    /**
     * Set the vulnerabilityProfile property: IPs Vulnerability Profile Data.
     *
     * @param vulnerabilityProfile the vulnerabilityProfile value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withVulnerabilityProfile(String vulnerabilityProfile) {
        this.vulnerabilityProfile = vulnerabilityProfile;
        return this;
    }

    /**
     * Get the antiSpywareProfile property: Anti spyware Profile data.
     *
     * @return the antiSpywareProfile value.
     */
    public String antiSpywareProfile() {
        return this.antiSpywareProfile;
    }

    /**
     * Set the antiSpywareProfile property: Anti spyware Profile data.
     *
     * @param antiSpywareProfile the antiSpywareProfile value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withAntiSpywareProfile(String antiSpywareProfile) {
        this.antiSpywareProfile = antiSpywareProfile;
        return this;
    }

    /**
     * Get the antiVirusProfile property: anti virus profile data.
     *
     * @return the antiVirusProfile value.
     */
    public String antiVirusProfile() {
        return this.antiVirusProfile;
    }

    /**
     * Set the antiVirusProfile property: anti virus profile data.
     *
     * @param antiVirusProfile the antiVirusProfile value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withAntiVirusProfile(String antiVirusProfile) {
        this.antiVirusProfile = antiVirusProfile;
        return this;
    }

    /**
     * Get the urlFilteringProfile property: URL filtering profile data.
     *
     * @return the urlFilteringProfile value.
     */
    public String urlFilteringProfile() {
        return this.urlFilteringProfile;
    }

    /**
     * Set the urlFilteringProfile property: URL filtering profile data.
     *
     * @param urlFilteringProfile the urlFilteringProfile value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withUrlFilteringProfile(String urlFilteringProfile) {
        this.urlFilteringProfile = urlFilteringProfile;
        return this;
    }

    /**
     * Get the fileBlockingProfile property: File blocking profile data.
     *
     * @return the fileBlockingProfile value.
     */
    public String fileBlockingProfile() {
        return this.fileBlockingProfile;
    }

    /**
     * Set the fileBlockingProfile property: File blocking profile data.
     *
     * @param fileBlockingProfile the fileBlockingProfile value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withFileBlockingProfile(String fileBlockingProfile) {
        this.fileBlockingProfile = fileBlockingProfile;
        return this;
    }

    /**
     * Get the dnsSubscription property: DNS Subscription profile data.
     *
     * @return the dnsSubscription value.
     */
    public String dnsSubscription() {
        return this.dnsSubscription;
    }

    /**
     * Set the dnsSubscription property: DNS Subscription profile data.
     *
     * @param dnsSubscription the dnsSubscription value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withDnsSubscription(String dnsSubscription) {
        this.dnsSubscription = dnsSubscription;
        return this;
    }

    /**
     * Get the outboundUnTrustCertificate property: Untrusted Egress Decryption profile data.
     *
     * @return the outboundUnTrustCertificate value.
     */
    public String outboundUnTrustCertificate() {
        return this.outboundUnTrustCertificate;
    }

    /**
     * Set the outboundUnTrustCertificate property: Untrusted Egress Decryption profile data.
     *
     * @param outboundUnTrustCertificate the outboundUnTrustCertificate value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withOutboundUnTrustCertificate(String outboundUnTrustCertificate) {
        this.outboundUnTrustCertificate = outboundUnTrustCertificate;
        return this;
    }

    /**
     * Get the outboundTrustCertificate property: Trusted Egress Decryption profile data.
     *
     * @return the outboundTrustCertificate value.
     */
    public String outboundTrustCertificate() {
        return this.outboundTrustCertificate;
    }

    /**
     * Set the outboundTrustCertificate property: Trusted Egress Decryption profile data.
     *
     * @param outboundTrustCertificate the outboundTrustCertificate value to set.
     * @return the SecurityServices object itself.
     */
    public SecurityServices withOutboundTrustCertificate(String outboundTrustCertificate) {
        this.outboundTrustCertificate = outboundTrustCertificate;
        return this;
    }

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