1: <?php
2:
3: declare(strict_types=1);
4:
5: /*
6: * This file has been auto generated by Jane,
7: *
8: * Do no edit it directly.
9: */
10:
11: namespace NxSys\Library\Clients\Brex\API\Team\Model;
12:
13: class Card extends \ArrayObject
14: {
15: /**
16: * @var array
17: */
18: protected $initialized = [];
19:
20: public function isInitialized($property): bool
21: {
22: return array_key_exists($property, $this->initialized);
23: }
24: /**
25: * @var string
26: */
27: protected $id;
28: /**
29: * @var mixed[]
30: */
31: protected $owner;
32: /**
33: * @var string
34: */
35: protected $status;
36: /**
37: * @var string
38: */
39: protected $lastFour;
40: /**
41: * @var string
42: */
43: protected $cardName;
44: /**
45: * @var string
46: */
47: protected $cardType;
48: /**
49: `limit_type = CARD` for vendor cards. Vendor cards must have a `card_type` of `VIRTUAL`
50: and do not rely on the user specific limit.
51:
52: For corporate cards, `limit_type = USER`.
53:
54: Learn more about different card types [here](https://support.brex.com/what-are-the-different-types-of-cards-i-can-get/).
55:
56: *
57: * @var string
58: */
59: protected $limitType;
60: /**
61: * @var CardSpendControls
62: */
63: protected $spendControls;
64: /**
65: * Company business address (must be in the US; no PO box or virtual/forwarding addresses allowed).
66: *
67: * @var Address
68: */
69: protected $billingAddress;
70: /**
71: * @var CardMailingAddress
72: */
73: protected $mailingAddress;
74: /**
75: Set of key value pairs associated with this object. Please do not store any personally identifiable or sensitive information here.
76: Limitations: maximum of 50 keys, keys cannot exceed 40 characters, values cannot exceed 500 characters.
77:
78: *
79: * @var string[]|null
80: */
81: protected $metadata;
82:
83: public function getId(): string
84: {
85: return $this->id;
86: }
87:
88: public function setId(string $id): self
89: {
90: $this->initialized['id'] = true;
91: $this->id = $id;
92:
93: return $this;
94: }
95:
96: /**
97: * @return mixed[]
98: */
99: public function getOwner(): iterable
100: {
101: return $this->owner;
102: }
103:
104: /**
105: * @param mixed[] $owner
106: */
107: public function setOwner(iterable $owner): self
108: {
109: $this->initialized['owner'] = true;
110: $this->owner = $owner;
111:
112: return $this;
113: }
114:
115: public function getStatus(): string
116: {
117: return $this->status;
118: }
119:
120: public function setStatus(string $status): self
121: {
122: $this->initialized['status'] = true;
123: $this->status = $status;
124:
125: return $this;
126: }
127:
128: public function getLastFour(): string
129: {
130: return $this->lastFour;
131: }
132:
133: public function setLastFour(string $lastFour): self
134: {
135: $this->initialized['lastFour'] = true;
136: $this->lastFour = $lastFour;
137:
138: return $this;
139: }
140:
141: public function getCardName(): string
142: {
143: return $this->cardName;
144: }
145:
146: public function setCardName(string $cardName): self
147: {
148: $this->initialized['cardName'] = true;
149: $this->cardName = $cardName;
150:
151: return $this;
152: }
153:
154: public function getCardType(): string
155: {
156: return $this->cardType;
157: }
158:
159: public function setCardType(string $cardType): self
160: {
161: $this->initialized['cardType'] = true;
162: $this->cardType = $cardType;
163:
164: return $this;
165: }
166:
167: /**
168: `limit_type = CARD` for vendor cards. Vendor cards must have a `card_type` of `VIRTUAL`
169: and do not rely on the user specific limit.
170:
171: For corporate cards, `limit_type = USER`.
172:
173: Learn more about different card types [here](https://support.brex.com/what-are-the-different-types-of-cards-i-can-get/).
174: */
175: public function getLimitType(): string
176: {
177: return $this->limitType;
178: }
179:
180: /**
181: `limit_type = CARD` for vendor cards. Vendor cards must have a `card_type` of `VIRTUAL`
182: and do not rely on the user specific limit.
183:
184: For corporate cards, `limit_type = USER`.
185:
186: Learn more about different card types [here](https://support.brex.com/what-are-the-different-types-of-cards-i-can-get/).
187: */
188: public function setLimitType(string $limitType): self
189: {
190: $this->initialized['limitType'] = true;
191: $this->limitType = $limitType;
192:
193: return $this;
194: }
195:
196: public function getSpendControls(): CardSpendControls
197: {
198: return $this->spendControls;
199: }
200:
201: public function setSpendControls(CardSpendControls $spendControls): self
202: {
203: $this->initialized['spendControls'] = true;
204: $this->spendControls = $spendControls;
205:
206: return $this;
207: }
208:
209: /**
210: * Company business address (must be in the US; no PO box or virtual/forwarding addresses allowed).
211: */
212: public function getBillingAddress(): Address
213: {
214: return $this->billingAddress;
215: }
216:
217: /**
218: * Company business address (must be in the US; no PO box or virtual/forwarding addresses allowed).
219: */
220: public function setBillingAddress(Address $billingAddress): self
221: {
222: $this->initialized['billingAddress'] = true;
223: $this->billingAddress = $billingAddress;
224:
225: return $this;
226: }
227:
228: public function getMailingAddress(): CardMailingAddress
229: {
230: return $this->mailingAddress;
231: }
232:
233: public function setMailingAddress(CardMailingAddress $mailingAddress): self
234: {
235: $this->initialized['mailingAddress'] = true;
236: $this->mailingAddress = $mailingAddress;
237:
238: return $this;
239: }
240:
241: /**
242: Set of key value pairs associated with this object. Please do not store any personally identifiable or sensitive information here.
243: Limitations: maximum of 50 keys, keys cannot exceed 40 characters, values cannot exceed 500 characters.
244:
245: *
246: * @return string[]|null
247: */
248: public function getMetadata(): ?iterable
249: {
250: return $this->metadata;
251: }
252:
253: /**
254: Set of key value pairs associated with this object. Please do not store any personally identifiable or sensitive information here.
255: Limitations: maximum of 50 keys, keys cannot exceed 40 characters, values cannot exceed 500 characters.
256:
257: *
258: * @param string[]|null $metadata
259: */
260: public function setMetadata(?iterable $metadata): self
261: {
262: $this->initialized['metadata'] = true;
263: $this->metadata = $metadata;
264:
265: return $this;
266: }
267: }
268: