| Required role: | REGISUserRole |
| POST | /Finance/FinancialAid/AllocationReview/{reporting_term} |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationCandidateResponse:
application_uuid: Optional[str] = None
uuid: Optional[str] = None
regent_id: int = 0
first_name: Optional[str] = None
last_name: Optional[str] = None
application_start_term: Optional[str] = None
current_status: Optional[str] = None
submitted_date: Optional[datetime.datetime] = None
eligibility_tier: Optional[str] = None
award_target: Decimal = decimal.Decimal(0)
committed_amount: Decimal = decimal.Decimal(0)
unmet_amount: Decimal = decimal.Decimal(0)
proposed_amount: Decimal = decimal.Decimal(0)
incomplete_reason: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationCycleResponse:
application_start_term: Optional[str] = None
is_fallback_released: bool = False
fallback_release_date: Optional[datetime.datetime] = None
fallback_released_by: Optional[str] = None
primary_candidates: Optional[List[FinancialAidAllocationCandidateResponse]] = None
fallback_candidates: Optional[List[FinancialAidAllocationCandidateResponse]] = None
manual_review_candidates: Optional[List[FinancialAidAllocationCandidateResponse]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationProposalResponse:
application_uuid: Optional[str] = None
regent_id: int = 0
student_name: Optional[str] = None
application_start_term: Optional[str] = None
eligibility_tier: Optional[str] = None
amount: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationAwardResponse:
award_code: Optional[str] = None
award_description: Optional[str] = None
budget_amount: Decimal = decimal.Decimal(0)
planned_or_offered_amount: Decimal = decimal.Decimal(0)
accepted_or_issued_amount: Decimal = decimal.Decimal(0)
committed_amount: Decimal = decimal.Decimal(0)
reclaimable_amount: Decimal = decimal.Decimal(0)
proposed_amount: Decimal = decimal.Decimal(0)
projected_remaining_amount: Decimal = decimal.Decimal(0)
must_award_whole_budget: bool = False
requires_manual_review: bool = False
manual_review_note: Optional[str] = None
required_recipient_count: Optional[int] = None
requires_equal_shares: bool = False
application_cycles: Optional[List[FinancialAidAllocationCycleResponse]] = None
proposals: Optional[List[FinancialAidAllocationProposalResponse]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationConflictResponse:
award_code: Optional[str] = None
award_description: Optional[str] = None
application_start_term: Optional[str] = None
fallback_application_uuid: Optional[str] = None
fallback_student_name: Optional[str] = None
fallback_status: Optional[str] = None
reclaimable_amount: Decimal = decimal.Decimal(0)
primary_application_uuid: Optional[str] = None
primary_student_name: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationReviewResponse:
response_status: Optional[ResponseStatus] = None
reporting_term: Optional[str] = None
budget_amount: Decimal = decimal.Decimal(0)
committed_amount: Decimal = decimal.Decimal(0)
proposed_amount: Decimal = decimal.Decimal(0)
projected_unused_amount: Decimal = decimal.Decimal(0)
actionable_unmet_amount: Decimal = decimal.Decimal(0)
awards: Optional[List[FinancialAidAllocationAwardResponse]] = None
incomplete_candidates: Optional[List[FinancialAidAllocationCandidateResponse]] = None
conflicts: Optional[List[FinancialAidAllocationConflictResponse]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAidAllocationReviewRequest:
reporting_term: Optional[str] = None
authorizing_uuid: Optional[str] = None
Python FinancialAidAllocationReviewRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Finance/FinancialAid/AllocationReview/{reporting_term} HTTP/1.1
Host: data.regent-college.edu
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
reporting_term: String,
authorizing_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
},
reporting_term: String,
budget_amount: 0,
committed_amount: 0,
proposed_amount: 0,
projected_unused_amount: 0,
actionable_unmet_amount: 0,
awards:
[
{
award_code: String,
award_description: String,
budget_amount: 0,
planned_or_offered_amount: 0,
accepted_or_issued_amount: 0,
committed_amount: 0,
reclaimable_amount: 0,
proposed_amount: 0,
projected_remaining_amount: 0,
must_award_whole_budget: False,
requires_manual_review: False,
manual_review_note: String,
required_recipient_count: 0,
requires_equal_shares: False,
application_cycles:
[
{
application_start_term: String,
is_fallback_released: False,
fallback_release_date: 0001-01-01,
fallback_released_by: String,
primary_candidates:
[
{
application_uuid: String,
uuid: String,
regent_id: 0,
first_name: String,
last_name: String,
application_start_term: String,
current_status: String,
submitted_date: 0001-01-01,
eligibility_tier: String,
award_target: 0,
committed_amount: 0,
unmet_amount: 0,
proposed_amount: 0,
incomplete_reason: String
}
],
fallback_candidates:
[
{
application_uuid: String,
uuid: String,
regent_id: 0,
first_name: String,
last_name: String,
application_start_term: String,
current_status: String,
submitted_date: 0001-01-01,
eligibility_tier: String,
award_target: 0,
committed_amount: 0,
unmet_amount: 0,
proposed_amount: 0,
incomplete_reason: String
}
],
manual_review_candidates:
[
{
application_uuid: String,
uuid: String,
regent_id: 0,
first_name: String,
last_name: String,
application_start_term: String,
current_status: String,
submitted_date: 0001-01-01,
eligibility_tier: String,
award_target: 0,
committed_amount: 0,
unmet_amount: 0,
proposed_amount: 0,
incomplete_reason: String
}
]
}
],
proposals:
[
{
application_uuid: String,
regent_id: 0,
student_name: String,
application_start_term: String,
eligibility_tier: String,
amount: 0
}
]
}
],
incomplete_candidates:
[
{
application_uuid: String,
uuid: String,
regent_id: 0,
first_name: String,
last_name: String,
application_start_term: String,
current_status: String,
submitted_date: 0001-01-01,
eligibility_tier: String,
award_target: 0,
committed_amount: 0,
unmet_amount: 0,
proposed_amount: 0,
incomplete_reason: String
}
],
conflicts:
[
{
award_code: String,
award_description: String,
application_start_term: String,
fallback_application_uuid: String,
fallback_student_name: String,
fallback_status: String,
reclaimable_amount: 0,
primary_application_uuid: String,
primary_student_name: String
}
]
}