Person
Person
Section titled “Person”A person affiliated with an organization or grant application.
Property | Type | Required | Description |
---|---|---|---|
name | Name | Yes | The person’s full name |
title | string | No | The person’s title |
addresses | PersonAddressCollection | No | The person’s addresses |
phones | PersonPhoneCollection | No | The person’s phone numbers |
fax | Phone | No | The person’s fax number |
emails | PersonEmailCollection | No | The person’s email addresses |
Formats
Section titled “Formats”A JSON example of this model is:
{ "name": { "prefix": "Dr.", "first": "Jane", "middle": "E.", "last": "Doe" }, "phones": { "primary": { "countryCode": "+1", "number": "123-456-7890" }, "work": { "countryCode": "+1", "number": "123-456-7890" }, "home": { "countryCode": "+1", "number": "123-456-7890" } }, "fax": { "countryCode": "+1", "number": "123-456-7890" }, "emails": { "primary": "john.doe@example.com", "work": "john.doe@work.com", "personal": "john.doe@gmail.com", "otherEmails": { "school": "john.doe@school.edu" } }, "addresses": { "mailing": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" }, "work": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" }, "home": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" } }}
The JSON Schema for this model is:
$id: Person.jsontype: objectproperties: name: $ref: Name.json description: The person's full name, including all relevant components (first, middle, last, etc.). title: type: string description: The person's title, if applicable. addresses: $ref: PersonAddressCollection.json description: Collection of physical addresses associated with the person. phones: $ref: PersonPhoneCollection.json description: Collection of phone numbers associated with the person. fax: $ref: Phone.json description: The person's fax number, if applicable. emails: $ref: PersonEmailCollection.json description: Collection of email addresses associated with the person.required: - namedescription: A person affiliated with an organization or grant application.
The TypeSpec code for this model is:
/** A person affiliated with an organization or grant application. */model Person { /** The person's full name, including all relevant components (first, middle, last, etc.). */ name: Fields.Name;
/** The person's title, if applicable. */ title?: string;
/** Collection of physical addresses associated with the person. */ addresses?: PersonAddressCollection;
/** Collection of phone numbers associated with the person. */ phones?: PersonPhoneCollection;
/** The person's fax number, if applicable. */ fax?: Fields.Phone;
/** Collection of email addresses associated with the person. */ emails?: PersonEmailCollection;}
PersonAddressCollection
Section titled “PersonAddressCollection”A collection of addresses for a person.
Property | Type | Required | Description |
---|---|---|---|
mailing | Address | Yes | The person’s mailing address |
work | Address | No | The person’s work address |
home | Address | No | The person’s home address |
otherAddresses | Record<Address> | No | Additional addresses not covered by the standard fields. |
Formats
Section titled “Formats”A JSON example of this model is:
{ "mailing": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" }, "work": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" }, "home": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" }, "otherAddresses": { "school": { "street1": "123 Main St", "city": "Anytown", "stateOrProvince": "CA", "country": "US", "postalCode": "12345" } }}
The JSON Schema for this model is:
$id: PersonAddressCollection.jsontype: objectproperties: mailing: $ref: Address.json description: The person's primary mailing address. work: $ref: Address.json description: The person's work address. home: $ref: Address.json description: The person's home address. otherAddresses: type: object properties: {} unevaluatedProperties: $ref: Address.json description: Additional addresses not covered by the standard fields.required: - mailingdescription: Collection of physical addresses associated with the person.
The TypeSpec code for this model is:
/** A collection of addresses for a person. */model PersonAddressCollection { /** The person's primary mailing address. */ mailing: Fields.Address;
/** The person's work address. */ work?: Fields.Address;
/** The person's home address. */ home?: Fields.Address;
/** Additional addresses not covered by the standard fields. */ otherAddresses?: Record<Fields.Address>;}
PersonEmailCollection
Section titled “PersonEmailCollection”A collection of email addresses for a person.
Property | Type | Required | Description |
---|---|---|---|
primary | Yes | The person’s primary email address | |
work | No | The person’s work email address | |
home | No | The person’s home email address | |
otherEmails | Record<email> | No | Additional email addresses not covered by the standard fields. |
Formats
Section titled “Formats”A JSON example of this model is:
{ "primary": "john.doe@example.com", "work": "john.doe@work.com", "home": "john.doe@gmail.com", "otherEmails": { "school": "john.doe@school.edu" }}
The JSON Schema for this model is:
$id: PersonEmailCollection.jsontype: objectproperties: primary: $ref: Email.json description: The person's primary email address. work: $ref: Email.json description: The person's work email address. home: $ref: Email.json description: The person's home email address. otherEmails: type: object properties: {} unevaluatedProperties: $ref: Email.json description: Additional email addresses not covered by the standard fields.required: - primarydescription: Collection of email addresses associated with the person.
The TypeSpec code for this model is:
/** A collection of email addresses for a person. */model PersonEmailCollection { /** The person's primary email address. */ primary: Fields.email;
/** The person's work email address. */ work?: Fields.email;
/** The person's personal email address. */ personal?: Fields.email;
/** Additional email addresses not covered by the standard fields. */ otherEmails?: Record<Fields.email>;}
PersonPhoneCollection
Section titled “PersonPhoneCollection”A collection of phone numbers for a person.
Property | Type | Required | Description |
---|---|---|---|
primary | Phone | Yes | The person’s primary phone number |
work | Phone | No | The person’s work phone number |
home | Phone | No | The person’s home phone number |
otherPhones | Record<Phone> | No | Additional phone numbers not covered by the standard fields. |
Formats
Section titled “Formats”A JSON example of this model is:
{ "primary": { "countryCode": "+1", "number": "123-456-7890", "isMobile": true }, "work": { "countryCode": "+1", "number": "456-789-0123", "extension": "123", "isMobile": false }, "home": { "countryCode": "+1", "number": "789-012-3456", "extension": "567", "isMobile": true }, "otherPhones": { "school": { "countryCode": "+1", "number": "123-456-7890", "extension": "123", "isMobile": true } }}
The JSON Schema for this model is:
$id: PersonPhoneCollection.jsontype: objectproperties: primary: $ref: Phone.json description: The person's primary phone number. work: $ref: Phone.json description: The person's work phone number. home: $ref: Phone.json description: The person's home phone number. otherPhones: type: object properties: {} unevaluatedProperties: $ref: Phone.json description: Additional phone numbers not covered by the standard fields.required: - primarydescription: Collection of phone numbers associated with the person.
The TypeSpec code for this model is:
/** A collection of phone numbers for a person. */model PersonPhoneCollection { /** The person's primary phone number. */ primary: Fields.Phone;
/** The person's work phone number. */ work?: Fields.Phone;
/** The person's home phone number. */ home?: Fields.Phone;
/** Additional phone numbers not covered by the standard fields. */ otherPhones?: Record<Fields.Phone>;}