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 |
| opportunityId | uuid | Yes | The unique identifier for the opportunity being applied to |
| formResponses | record<AppFormResponse> | Yes | The form responses for the application |
| status | AppStatus | Yes | The status of the application |
| submittedAt | utcDateTime or null | No | The date and time the application was submitted |
| validationErrors | array<unknown> | No | The validation errors for the application and form responses |
| 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 opportunityId: $ref: uuid.yaml description: The unique identifier for the opportunity being applied to 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 - opportunityId - formResponses - status - createdAt - lastModifiedAtunevaluatedProperties: not: {}examples: - id: 123e4567-e89b-12d3-a456-426614174000 name: My Application competitionId: 123e4567-e89b-12d3-a456-426614174000 opportunityId: ad3b469a-d89a-42d3-c439-6c1234567890 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:00Z customFields: attachments: name: attachments fieldType: object value: contacts: downloadUrl: https://example.com/file.pdf name: example.pdf description: A PDF file with instructions sizeInBytes: 1000 mimeType: application/pdf createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 budget: downloadUrl: https://example.com/excel.xlsx name: excel.xlsx description: The excel file for the application sizeInBytes: 1000 mimeType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 description: The attachments for the application applicationZipFile: name: applicationZipFile fieldType: object value: downloadUrl: https://example.com/application.zip name: application.zip description: The zip file for the application sizeInBytes: 50000 mimeType: application/zip createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 description: The zip file for the applicationdescription: 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.yamlThe 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;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.3.0 |
| ApplicationBase.yaml |
| 0.2.0 |
| ApplicationBase.yaml |
AppStatus
Section titled “AppStatus”The status of an application.
| Property | Type | Required | Description |
|---|---|---|---|
| value | AppStatusOptions | Yes | The status of the application, from a predefined set of options |
| customValue | string | No | A custom value for the status |
| description | string | No | A human-readable 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: - valueunevaluatedProperties: not: {}examples: - value: submitted description: The application has been submitted.description: The status of the applicationThe 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;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.2.0 |
| AppStatus.yaml |
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 and is being reviewed |
| 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 statusThe 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,}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.1.0 |
| AppStatusOptions.yaml |
AppFormResponse
Section titled “AppFormResponse”A form response associated with an application.
| Property | Type | Required | Description |
|---|---|---|---|
| applicationId | uuid | Yes | The unique identifier for the application |
| id | uuid | Yes | The unique identifier for the form response |
| formId | uuid | Yes | The form being responded to |
| response | record | 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 | Custom attributes about the form response |
| 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 - lastModifiedAtunevaluatedProperties: not: {}examples: - 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.yamlThe 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;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.2.0 |
| AppFormResponse.yaml |