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

package com.azure.resourcemanager.resourceconnector.models;

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

/** Appliance SSHKey definition. */
@Immutable
public final class SshKey {
    /*
     * Certificate associated with the public key if the key is signed.
     */
    @JsonProperty(value = "certificate", access = JsonProperty.Access.WRITE_ONLY)
    private String certificate;

    /*
     * Certificate creation timestamp (Unix).
     */
    @JsonProperty(value = "creationTimeStamp", access = JsonProperty.Access.WRITE_ONLY)
    private Long creationTimestamp;

    /*
     * Certificate expiration timestamp (Unix).
     */
    @JsonProperty(value = "expirationTimeStamp", access = JsonProperty.Access.WRITE_ONLY)
    private Long expirationTimestamp;

    /*
     * Private Key.
     */
    @JsonProperty(value = "privateKey", access = JsonProperty.Access.WRITE_ONLY)
    private String privateKey;

    /*
     * Public Key.
     */
    @JsonProperty(value = "publicKey", access = JsonProperty.Access.WRITE_ONLY)
    private String publicKey;

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

    /**
     * Get the certificate property: Certificate associated with the public key if the key is signed.
     *
     * @return the certificate value.
     */
    public String certificate() {
        return this.certificate;
    }

    /**
     * Get the creationTimestamp property: Certificate creation timestamp (Unix).
     *
     * @return the creationTimestamp value.
     */
    public Long creationTimestamp() {
        return this.creationTimestamp;
    }

    /**
     * Get the expirationTimestamp property: Certificate expiration timestamp (Unix).
     *
     * @return the expirationTimestamp value.
     */
    public Long expirationTimestamp() {
        return this.expirationTimestamp;
    }

    /**
     * Get the privateKey property: Private Key.
     *
     * @return the privateKey value.
     */
    public String privateKey() {
        return this.privateKey;
    }

    /**
     * Get the publicKey property: Public Key.
     *
     * @return the publicKey value.
     */
    public String publicKey() {
        return this.publicKey;
    }

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