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

package com.azure.resourcemanager.networkcloud.models;

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

/** Type Deprecated. Will be removed in an upcoming version. Nic represents the network interface card details. */
@Immutable
public final class Nic {
    /*
     * Type Deprecated. Will be removed in an upcoming version. LldpNeighbor represents the details about the device
     * connected to the NIC.
     *
     * The information about the device connected to this NIC.
     */
    @JsonProperty(value = "lldpNeighbor", access = JsonProperty.Access.WRITE_ONLY)
    private LldpNeighbor lldpNeighbor;

    /*
     * The MAC address associated with this NIC.
     */
    @JsonProperty(value = "macAddress", access = JsonProperty.Access.WRITE_ONLY)
    private String macAddress;

    /*
     * The name of the NIC/interface.
     */
    @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
    private String name;

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

    /**
     * Get the lldpNeighbor property: Type Deprecated. Will be removed in an upcoming version. LldpNeighbor represents
     * the details about the device connected to the NIC.
     *
     * <p>The information about the device connected to this NIC.
     *
     * @return the lldpNeighbor value.
     */
    public LldpNeighbor lldpNeighbor() {
        return this.lldpNeighbor;
    }

    /**
     * Get the macAddress property: The MAC address associated with this NIC.
     *
     * @return the macAddress value.
     */
    public String macAddress() {
        return this.macAddress;
    }

    /**
     * Get the name property: The name of the NIC/interface.
     *
     * @return the name value.
     */
    public String name() {
        return this.name;
    }

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