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.subaccounts; 017 018import com.fasterxml.jackson.annotation.JsonIgnore; 019import com.fasterxml.jackson.annotation.JsonProperty; 020import com.vonage.client.Jsonable; 021import com.vonage.client.JsonableBaseObject; 022import java.util.List; 023 024/** 025 * Response container for {@link SubaccountsClient#listSubaccounts()}. 026 */ 027public class ListSubaccountsResponse extends JsonableBaseObject { 028 @JsonProperty("_embedded") private Embedded embedded; 029 030 private static final class Embedded extends JsonableBaseObject { 031 @JsonProperty("primary_account") private Account primaryAccount; 032 @JsonProperty("subaccounts") private List<Account> subaccounts; 033 } 034 035 protected ListSubaccountsResponse() { 036 } 037 038 /** 039 * Parent account. 040 * 041 * @return The primary account details. 042 */ 043 @JsonIgnore 044 public Account getPrimaryAccount() { 045 return embedded != null ? embedded.primaryAccount : null; 046 } 047 048 /** 049 * The subaccounts associated with the primary account. 050 * 051 * @return List of subaccount details. 052 */ 053 @JsonIgnore 054 public List<Account> getSubaccounts() { 055 return embedded != null ? embedded.subaccounts : null; 056 } 057 058 /** 059 * Creates an instance of this class from a JSON payload. 060 * 061 * @param json The JSON string to parse. 062 * @return An instance of this class with the fields populated, if present. 063 */ 064 public static ListSubaccountsResponse fromJson(String json) { 065 return Jsonable.fromJson(json); 066 } 067}