001/*
002 *   Copyright 2024 Vonage
003 *
004 *   Licensed under the Apache License, Version 2.0 (the "License");
005 *   you may not use this file except in compliance with the License.
006 *   You may obtain a copy of the License at
007 *
008 *        http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *   Unless required by applicable law or agreed to in writing, software
011 *   distributed under the License is distributed on an "AS IS" BASIS,
012 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *   See the License for the specific language governing permissions and
014 *   limitations under the License.
015 */
016package com.vonage.client.users;
017
018import com.fasterxml.jackson.annotation.JsonProperty;
019import com.vonage.client.JsonableBaseObject;
020
021/**
022 * Represents the main attributes of a User.
023 */
024public class BaseUser extends JsonableBaseObject {
025    String id, name;
026
027    protected BaseUser() {
028    }
029
030    /**
031     * Creates a BaseUser with the ID and name fields as specified.
032     *
033     * @param id The unique user ID as a string.
034     * @param name The unique user name.
035     *
036     * @since 8.4.0
037     */
038    public BaseUser(String id, String name) {
039        this.id = id;
040        this.name = name;
041    }
042
043    /**
044     * Unique user ID.
045     *
046     * @return The user ID as a string, or {@code null} if unknown.
047     */
048    @JsonProperty("id")
049    public String getId() {
050        return id;
051    }
052
053    /**
054     * Unique name of the user.
055     *
056     * @return The user's name.
057     */
058    @JsonProperty("name")
059    public String getName() {
060        return name;
061    }
062}