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

package com.azure.resourcemanager.databoxedge.fluent.models;

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

/** The properties of the Data Box Edge/Gateway device extended info. */
@Fluent
public final class DataBoxEdgeDeviceExtendedInfoProperties {
    /*
     * The digital signature of encrypted certificate.
     */
    @JsonProperty(value = "encryptionKeyThumbprint")
    private String encryptionKeyThumbprint;

    /*
     * The public part of the encryption certificate. Client uses this to encrypt any secret.
     */
    @JsonProperty(value = "encryptionKey")
    private String encryptionKey;

    /*
     * The Resource ID of the Resource.
     */
    @JsonProperty(value = "resourceKey", access = JsonProperty.Access.WRITE_ONLY)
    private String resourceKey;

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

    /**
     * Get the encryptionKeyThumbprint property: The digital signature of encrypted certificate.
     *
     * @return the encryptionKeyThumbprint value.
     */
    public String encryptionKeyThumbprint() {
        return this.encryptionKeyThumbprint;
    }

    /**
     * Set the encryptionKeyThumbprint property: The digital signature of encrypted certificate.
     *
     * @param encryptionKeyThumbprint the encryptionKeyThumbprint value to set.
     * @return the DataBoxEdgeDeviceExtendedInfoProperties object itself.
     */
    public DataBoxEdgeDeviceExtendedInfoProperties withEncryptionKeyThumbprint(String encryptionKeyThumbprint) {
        this.encryptionKeyThumbprint = encryptionKeyThumbprint;
        return this;
    }

    /**
     * Get the encryptionKey property: The public part of the encryption certificate. Client uses this to encrypt any
     * secret.
     *
     * @return the encryptionKey value.
     */
    public String encryptionKey() {
        return this.encryptionKey;
    }

    /**
     * Set the encryptionKey property: The public part of the encryption certificate. Client uses this to encrypt any
     * secret.
     *
     * @param encryptionKey the encryptionKey value to set.
     * @return the DataBoxEdgeDeviceExtendedInfoProperties object itself.
     */
    public DataBoxEdgeDeviceExtendedInfoProperties withEncryptionKey(String encryptionKey) {
        this.encryptionKey = encryptionKey;
        return this;
    }

    /**
     * Get the resourceKey property: The Resource ID of the Resource.
     *
     * @return the resourceKey value.
     */
    public String resourceKey() {
        return this.resourceKey;
    }

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