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.numbers;
017
018import com.fasterxml.jackson.annotation.JsonProperty;
019import com.vonage.client.Jsonable;
020import com.vonage.client.JsonableBaseObject;
021
022/**
023 * Response from a request to list the numbers currently being rented buy an account.
024 */
025public class ListNumbersResponse extends JsonableBaseObject {
026    private int count;
027    private OwnedNumber[] numbers;
028
029    /**
030     * Total amount of numbers owned by the account.
031     * Note that this may not be the same as the size of {@linkplain #getNumbers()}.
032     *
033     * @return The total number of owned numbers.
034     */
035    @JsonProperty("count")
036    public int getCount() {
037        return count;
038    }
039
040    /**
041     * A paginated array of owned numbers and their details.
042     * Number of results will depend on what you set in {@linkplain ListNumbersFilter#getSize()}.
043     *
044     * @return The owned numbers as an array.
045     */
046    @JsonProperty("numbers")
047    public OwnedNumber[] getNumbers() {
048        return numbers != null ? numbers : new OwnedNumber[0];
049    }
050
051    /**
052     * Creates an instance of this class from a JSON payload.
053     *
054     * @param json The JSON string to parse.
055     * @return An instance of this class with all known fields populated from the JSON payload, if present.
056     */
057    public static ListNumbersResponse fromJson(String json) {
058        return Jsonable.fromJson(json);
059    }
060}