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\Budgets\Model;
12:
13: class Budget 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: Unique ID for the Budget.
26:
27: *
28: * @var string
29: */
30: protected $budgetId;
31: /**
32: The Brex account this Budget belongs to.
33:
34: *
35: * @var string
36: */
37: protected $accountId;
38: /**
39: The ID of the user who originally created this budget.
40:
41: *
42: * @var string|null
43: */
44: protected $creatorUserId;
45: /**
46: Name for the Budget.
47:
48: *
49: * @var string
50: */
51: protected $name;
52: /**
53: Description of what the Budget is used for.
54:
55: *
56: * @var string|null
57: */
58: protected $description;
59: /**
60: ID of parent Budget.
61:
62: *
63: * @var string|null
64: */
65: protected $parentBudgetId;
66: /**
67: User IDs of the owners of the Budget.
68:
69: *
70: * @var string[]
71: */
72: protected $ownerUserIds;
73: /**
74: User IDs of the members of the Budget.
75:
76: *
77: * @var string[]
78: */
79: protected $memberUserIds;
80: /**
81: Period type of the Budget e.g. MONTHLY.
82:
83: *
84: * @var string
85: */
86: protected $periodType;
87: /**
88: The UTC date when the Budget should start counting.
89:
90: *
91: * @var \DateTime|null
92: */
93: protected $startDate;
94: /**
95: The UTC date when the Budget should stop counting.
96:
97: *
98: * @var \DateTime|null
99: */
100: protected $endDate;
101: /**
102: * @var BudgetLimit
103: */
104: protected $limit;
105: /**
106: Status of the Budget e.g. APPROVED.
107:
108: *
109: * @var string
110: */
111: protected $budgetStatus;
112: /**
113: * @var string
114: */
115: protected $limitType;
116: /**
117: Whether this Budget only can be spent from by cards provisioned by this Budget.
118:
119: *
120: * @var string
121: */
122: protected $spendType;
123: /**
124: * @var BudgetCurrentPeriodBalance
125: */
126: protected $currentPeriodBalance;
127:
128: /**
129: Unique ID for the Budget.
130: */
131: public function getBudgetId(): string
132: {
133: return $this->budgetId;
134: }
135:
136: /**
137: Unique ID for the Budget.
138: */
139: public function setBudgetId(string $budgetId): self
140: {
141: $this->initialized['budgetId'] = true;
142: $this->budgetId = $budgetId;
143:
144: return $this;
145: }
146:
147: /**
148: The Brex account this Budget belongs to.
149: */
150: public function getAccountId(): string
151: {
152: return $this->accountId;
153: }
154:
155: /**
156: The Brex account this Budget belongs to.
157: */
158: public function setAccountId(string $accountId): self
159: {
160: $this->initialized['accountId'] = true;
161: $this->accountId = $accountId;
162:
163: return $this;
164: }
165:
166: /**
167: The ID of the user who originally created this budget.
168: */
169: public function getCreatorUserId(): ?string
170: {
171: return $this->creatorUserId;
172: }
173:
174: /**
175: The ID of the user who originally created this budget.
176: */
177: public function setCreatorUserId(?string $creatorUserId): self
178: {
179: $this->initialized['creatorUserId'] = true;
180: $this->creatorUserId = $creatorUserId;
181:
182: return $this;
183: }
184:
185: /**
186: Name for the Budget.
187: */
188: public function getName(): string
189: {
190: return $this->name;
191: }
192:
193: /**
194: Name for the Budget.
195: */
196: public function setName(string $name): self
197: {
198: $this->initialized['name'] = true;
199: $this->name = $name;
200:
201: return $this;
202: }
203:
204: /**
205: Description of what the Budget is used for.
206: */
207: public function getDescription(): ?string
208: {
209: return $this->description;
210: }
211:
212: /**
213: Description of what the Budget is used for.
214: */
215: public function setDescription(?string $description): self
216: {
217: $this->initialized['description'] = true;
218: $this->description = $description;
219:
220: return $this;
221: }
222:
223: /**
224: ID of parent Budget.
225: */
226: public function getParentBudgetId(): ?string
227: {
228: return $this->parentBudgetId;
229: }
230:
231: /**
232: ID of parent Budget.
233: */
234: public function setParentBudgetId(?string $parentBudgetId): self
235: {
236: $this->initialized['parentBudgetId'] = true;
237: $this->parentBudgetId = $parentBudgetId;
238:
239: return $this;
240: }
241:
242: /**
243: User IDs of the owners of the Budget.
244:
245: *
246: * @return string[]
247: */
248: public function getOwnerUserIds(): array
249: {
250: return $this->ownerUserIds;
251: }
252:
253: /**
254: User IDs of the owners of the Budget.
255:
256: *
257: * @param string[] $ownerUserIds
258: */
259: public function setOwnerUserIds(array $ownerUserIds): self
260: {
261: $this->initialized['ownerUserIds'] = true;
262: $this->ownerUserIds = $ownerUserIds;
263:
264: return $this;
265: }
266:
267: /**
268: User IDs of the members of the Budget.
269:
270: *
271: * @return string[]
272: */
273: public function getMemberUserIds(): array
274: {
275: return $this->memberUserIds;
276: }
277:
278: /**
279: User IDs of the members of the Budget.
280:
281: *
282: * @param string[] $memberUserIds
283: */
284: public function setMemberUserIds(array $memberUserIds): self
285: {
286: $this->initialized['memberUserIds'] = true;
287: $this->memberUserIds = $memberUserIds;
288:
289: return $this;
290: }
291:
292: /**
293: Period type of the Budget e.g. MONTHLY.
294: */
295: public function getPeriodType(): string
296: {
297: return $this->periodType;
298: }
299:
300: /**
301: Period type of the Budget e.g. MONTHLY.
302: */
303: public function setPeriodType(string $periodType): self
304: {
305: $this->initialized['periodType'] = true;
306: $this->periodType = $periodType;
307:
308: return $this;
309: }
310:
311: /**
312: The UTC date when the Budget should start counting.
313: */
314: public function getStartDate(): ?\DateTime
315: {
316: return $this->startDate;
317: }
318:
319: /**
320: The UTC date when the Budget should start counting.
321: */
322: public function setStartDate(?\DateTime $startDate): self
323: {
324: $this->initialized['startDate'] = true;
325: $this->startDate = $startDate;
326:
327: return $this;
328: }
329:
330: /**
331: The UTC date when the Budget should stop counting.
332: */
333: public function getEndDate(): ?\DateTime
334: {
335: return $this->endDate;
336: }
337:
338: /**
339: The UTC date when the Budget should stop counting.
340: */
341: public function setEndDate(?\DateTime $endDate): self
342: {
343: $this->initialized['endDate'] = true;
344: $this->endDate = $endDate;
345:
346: return $this;
347: }
348:
349: public function getLimit(): BudgetLimit
350: {
351: return $this->limit;
352: }
353:
354: public function setLimit(BudgetLimit $limit): self
355: {
356: $this->initialized['limit'] = true;
357: $this->limit = $limit;
358:
359: return $this;
360: }
361:
362: /**
363: Status of the Budget e.g. APPROVED.
364: */
365: public function getBudgetStatus(): string
366: {
367: return $this->budgetStatus;
368: }
369:
370: /**
371: Status of the Budget e.g. APPROVED.
372: */
373: public function setBudgetStatus(string $budgetStatus): self
374: {
375: $this->initialized['budgetStatus'] = true;
376: $this->budgetStatus = $budgetStatus;
377:
378: return $this;
379: }
380:
381: public function getLimitType(): string
382: {
383: return $this->limitType;
384: }
385:
386: public function setLimitType(string $limitType): self
387: {
388: $this->initialized['limitType'] = true;
389: $this->limitType = $limitType;
390:
391: return $this;
392: }
393:
394: /**
395: Whether this Budget only can be spent from by cards provisioned by this Budget.
396: */
397: public function getSpendType(): string
398: {
399: return $this->spendType;
400: }
401:
402: /**
403: Whether this Budget only can be spent from by cards provisioned by this Budget.
404: */
405: public function setSpendType(string $spendType): self
406: {
407: $this->initialized['spendType'] = true;
408: $this->spendType = $spendType;
409:
410: return $this;
411: }
412:
413: public function getCurrentPeriodBalance(): BudgetCurrentPeriodBalance
414: {
415: return $this->currentPeriodBalance;
416: }
417:
418: public function setCurrentPeriodBalance(BudgetCurrentPeriodBalance $currentPeriodBalance): self
419: {
420: $this->initialized['currentPeriodBalance'] = true;
421: $this->currentPeriodBalance = $currentPeriodBalance;
422:
423: return $this;
424: }
425: }
426: