Application
ApplicationBase
Section titled “ApplicationBase”Base model for an application to a funding opportunity.
Property | Type | Required | Description |
---|---|---|---|
id | uuid | Yes | The unique identifier for the application |
name | string | Yes | The name of the application |
competitionId | uuid | Yes | The unique identifier for the competition |
formResponses | Record<AppFormResponse> | Yes | The form responses for the application |
status | AppStatus | Yes | The status of the application |
submittedAt | utcDateTime | No | The date and time the application was submitted |
customFields | Record<CustomField> | No | The custom fields about the application |
createdAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was created |
lastModifiedAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was last modified |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "083b4567-e89d-42c8-a439-6c1234567890", "name": "Example Application", "competitionId": "083b4567-e89d-42c8-a439-6c1234567890", "formResponses": { // Form responses would be here }, "status": { "value": "inProgress", "description": "Application is in progress." }, "validationErrors": [], "submittedAt": null, "customFields": { "pctComplete": { "name": "Percentage Complete", "fieldType": "string", "value": "50%", "description": "Percentage of the application that has been completed" } }}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ApplicationBase.yamltype: objectproperties: id: $ref: uuid.yaml description: The unique identifier for the application name: type: string description: The name of the application competitionId: $ref: uuid.yaml description: The unique identifier for the competition formResponses: $ref: "#/$defs/RecordAppFormResponse" description: The form responses for the application status: $ref: AppStatus.yaml description: The status of the application submittedAt: anyOf: - type: string format: date-time - type: "null" description: The date and time the application was submitted validationErrors: type: array items: {} description: The validation errors for the application and form responses customFields: $ref: "#/$defs/RecordCustomField" description: The custom fields about the application createdAt: type: string format: date-time description: The timestamp (in UTC) at which the record was created. lastModifiedAt: type: string format: date-time description: The timestamp (in UTC) at which the record was last modified.required: - id - name - competitionId - formResponses - status - createdAt - lastModifiedAtexamples: - id: 123e4567-e89b-12d3-a456-426614174000 name: My Application competitionId: 123e4567-e89b-12d3-a456-426614174000 formResponses: formA: applicationId: 123e4567-e89b-12d3-a456-426614174000 id: 123e4567-e89b-12d3-a456-426614174000 formId: 123e4567-e89b-12d3-a456-426614174000 response: firstName: John lastName: Doe email: john.doe@example.com phone: 123-456-7890 address: street: 123 Main St city: Anytown state: CA zip: "12345" country: null status: value: inProgress description: The form response is in progress validationErrors: - field: address.country message: Country is required createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Z status: value: inProgress description: The application is in progress. submittedAt: null createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Zdescription: The base model for an application to a competition for a funding opportunity$defs: RecordAppFormResponse: type: object properties: {} unevaluatedProperties: $ref: AppFormResponse.yaml RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yaml
The TypeSpec code for this model.
/** The base model for an application to a competition for a funding opportunity */@example(Examples.Application.applicationBase)@Versioning.added(CommonGrants.Versions.v0_2)model ApplicationBase { /** The unique identifier for the application */ id: Types.uuid;
/** The name of the application */ name: string;
/** The unique identifier for the competition */ competitionId: Types.uuid;
/** The form responses for the application */ formResponses: Record<AppFormResponse>;
/** The status of the application */ status: AppStatus;
/** The date and time the application was submitted */ submittedAt?: utcDateTime | null;
/** The validation errors for the application and form responses */ validationErrors?: Array<unknown>;
/** The custom fields about the application */ customFields?: Record<Fields.CustomField>;
/** The system metadata for the application */ ...Fields.SystemMetadata;}
AppStatus
Section titled “AppStatus”The status of an application.
Property | Type | Required | Description |
---|---|---|---|
value | AppStatusOptions | Yes | The status of the application. |
customValue | string | No | A custom value for the status. |
description | string | No | A description of the status. |
Formats
Section titled “Formats”A JSON example of this model.
{ "value": "submitted", "description": "Application has been submitted."}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppStatus.yamltype: objectproperties: value: $ref: AppStatusOptions.yaml description: The status of the application, from a predefined set of options customValue: type: string description: A custom value for the status description: type: string description: A human-readable description of the statusrequired: - valueexamples: - value: submitted description: The application has been submitted.description: The status of the application
The TypeSpec code for this model.
/** The status of the application */@example(Examples.Application.submittedStatus)@Versioning.added(CommonGrants.Versions.v0_2)model AppStatus { /** The status of the application, from a predefined set of options */ value: AppStatusOptions;
/** A custom value for the status */ customValue?: string;
/** A human-readable description of the status */ description?: string;}
AppStatusOptions
Section titled “AppStatusOptions”The default set of values accepted for application status.
Value | Description |
---|---|
inProgress | The application is in progress |
submitted | The application has been submitted. |
accepted | The application has been accepted. |
rejected | The application has been rejected. |
custom | A custom status |
Formats
Section titled “Formats”A JSON example of this model.
"submitted"
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppStatusOptions.yamltype: stringenum: - inProgress - submitted - accepted - rejected - customdescription: |- The default set of values accepted for application status: - `inProgress`: The application is in progress - `submitted`: The application has been submitted and is being reviewed - `accepted`: The application has been accepted - `rejected`: The application has been rejected - `custom`: A custom status
The TypeSpec code for this model.
/** The default set of values accepted for application status: * - `inProgress`: The application is in progress * - `submitted`: The application has been submitted and is being reviewed * - `accepted`: The application has been accepted * - `rejected`: The application has been rejected * - `custom`: A custom status */enum AppStatusOptions { inProgress, submitted, accepted, rejected, custom,}
AppFormResponse
Section titled “AppFormResponse”A form response associated with an application.
Property | Type | Required | Description |
---|---|---|---|
id | uuid | Yes | The unique identifier for the form response |
form | Form | Yes | The form being responded to |
response | Record<unknown> | Yes | The response to the form |
status | FormResponseStatus | Yes | The status of the form response |
validationErrors | Array<unknown> | No | The validation errors for the form response |
customFields | Record<CustomField> | No | The custom fields about the form response |
applicationId | uuid | Yes | The unique identifier for the application |
createdAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was created |
lastModifiedAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was last modified |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "083b4567-e89d-42c8-a439-6c1234567890", "form": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a", "name": "Form A", "description": "Form A description" }, "response": { "name": { "first": "John", "last": "Doe" }, "email": "john.doe@example.com", "phone": "555-123-4567" }, "status": { "value": "complete", "description": "The form response is complete" }, "validationErrors": [], "applicationId": "083b4567-e89d-42c8-a439-6c1234567890", "createdAt": "2024-01-01T00:00:00Z", "lastModifiedAt": "2024-01-01T00:00:00Z"}
The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppFormResponse.yamltype: objectproperties: applicationId: $ref: uuid.yaml description: The unique identifier for the application id: $ref: uuid.yaml description: The unique identifier for the form response formId: $ref: uuid.yaml description: The form being responded to response: $ref: "#/$defs/RecordUnknown" description: The response to the form status: $ref: FormResponseStatus.yaml description: The status of the form response validationErrors: type: array items: {} description: The validation errors for the form response customFields: $ref: "#/$defs/RecordCustomField" description: Custom attributes about the form response createdAt: type: string format: date-time description: The timestamp (in UTC) at which the record was created. lastModifiedAt: type: string format: date-time description: The timestamp (in UTC) at which the record was last modified.required: - applicationId - id - formId - response - status - createdAt - lastModifiedAtexamples: - applicationId: 123e4567-e89b-12d3-a456-426614174000 id: 123e4567-e89b-12d3-a456-426614174000 formId: 123e4567-e89b-12d3-a456-426614174000 response: firstName: John lastName: Doe email: john.doe@example.com phone: 123-456-7890 address: street: 123 Main St city: Anytown state: CA zip: "12345" country: null status: value: inProgress description: The form response is in progress validationErrors: - field: address.country message: Country is required createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Zdescription: The model for a form response included in an application$defs: RecordUnknown: type: object properties: {} unevaluatedProperties: {} RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yaml
The TypeSpec code for this model.
/** The model for a form response included in an application */@example(Examples.Application.formResponse)@Versioning.added(CommonGrants.Versions.v0_2)model AppFormResponse { /** The unique identifier for the application */ applicationId: Types.uuid;
/** Includes all the fields from the FormResponseBase model */ ...FormResponseBase;}