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

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

import com.azure.core.annotation.Immutable;
import com.azure.resourcemanager.securityinsights.models.EntityCommonProperties;
import com.azure.resourcemanager.securityinsights.models.RegistryValueKind;
import com.fasterxml.jackson.annotation.JsonProperty;

/** RegistryValue entity property bag. */
@Immutable
public final class RegistryValueEntityProperties extends EntityCommonProperties {
    /*
     * The registry key entity id.
     */
    @JsonProperty(value = "keyEntityId", access = JsonProperty.Access.WRITE_ONLY)
    private String keyEntityId;

    /*
     * String formatted representation of the value data.
     */
    @JsonProperty(value = "valueData", access = JsonProperty.Access.WRITE_ONLY)
    private String valueData;

    /*
     * The registry value name.
     */
    @JsonProperty(value = "valueName", access = JsonProperty.Access.WRITE_ONLY)
    private String valueName;

    /*
     * Specifies the data types to use when storing values in the registry, or identifies the data type of a value in
     * the registry.
     */
    @JsonProperty(value = "valueType", access = JsonProperty.Access.WRITE_ONLY)
    private RegistryValueKind valueType;

    /**
     * Get the keyEntityId property: The registry key entity id.
     *
     * @return the keyEntityId value.
     */
    public String keyEntityId() {
        return this.keyEntityId;
    }

    /**
     * Get the valueData property: String formatted representation of the value data.
     *
     * @return the valueData value.
     */
    public String valueData() {
        return this.valueData;
    }

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

    /**
     * Get the valueType property: Specifies the data types to use when storing values in the registry, or identifies
     * the data type of a value in the registry.
     *
     * @return the valueType value.
     */
    public RegistryValueKind valueType() {
        return this.valueType;
    }

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