import { APIResource } from "../core/resource.js"; import { APIPromise } from "../core/api-promise.js"; import { RequestOptions } from "../internal/request-options.js"; /** * Custom object datarows defined by the company */ export declare class RecordDetails extends APIResource { /** * Retrieves a Custom Object record's readable values, edit capabilities, and * effective saved page layout. * * Use this response to render a record page or prepare an edit through the * canonical record PATCH endpoint. Includes discoverable direct fields outside the * layout. Unreadable fields retain metadata with null, MASKED values; saved * visibility conditions and field permissions determine the returned placements. * Related-list sections describe the target object, relationship field, and * configured columns without embedding row contents. Metadata-administration * scopes are not required. Masked values contain no raw data. Values use the * formats documented by data_type. References contain a scalar identifier and * optional permitted display, not an expanded resource. * * @example HTTP * Representative request and response shapes. * ``` * GET /record-details/{record_id}/?object_api_name=object_api_name&layout_api_name=default HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "object_api_name": "string", * "updated_at": "2025-01-01T00:00:00Z", * "capabilities": { * "editable": false, * "deletable": false, * "locked": false * }, * "layout": { * "api_name": "string", * "header": { * "title_field": "string", * "description_field": "string", * "fields": [ * "string" * ] * }, * "tabs": [ * { * "id": "string", * "label": "string", * "sections": [] * } * ] * }, * "fields": {}, * "actions": [ * { * "id": "string", * "api_name": "string", * "name": "string", * "function_api_name": "string", * "visibility_preferences": [ * "LIST_VIEW" * ] * } * ] * } * ``` */ retrieve(recordID: string, query: RecordDetailRetrieveParams, options?: RequestOptions): APIPromise; /** * Retrieves one permissioned, singular, nonpaginated Create context without * persisting a record. * * @example HTTP * Representative request and response shapes. * ``` * GET /record-details/?object_api_name=object_api_name&layout_api_name=default HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "object_api_name": "string", * "layout": { * "api_name": "string", * "header": { * "title_field": "string", * "description_field": "string", * "fields": [ * "string" * ] * }, * "tabs": [ * { * "id": "string", * "label": "string", * "sections": [] * } * ] * }, * "fields": {}, * "blockers": [ * { * "code": "REQUIRED_INPUT_UNAVAILABLE", * "field_api_name": "string", * "message": "string" * } * ], * "actions": [ * { * "id": "string", * "api_name": "string", * "name": "string", * "function_api_name": "string", * "visibility_preferences": [ * "LIST_VIEW" * ] * } * ] * } * ``` */ retrieveCreate(query: RecordDetailRetrieveCreateParams, options?: RequestOptions): APIPromise; } /** * Record values, edit capabilities, and the effective page layout for one readable * Custom Object record. */ export interface RecordDetailRetrieveResponse { /** * Stable record identifier returned by the canonical Custom Object record list or * query endpoint. Use it with object_api_name for canonical record GET and PATCH. */ id: string; /** * Complete authorized DETAIL_VIEW actions. Function execution and execution reads * remain separately authorized. */ actions: Array; /** * Permissions and lock state for this caller. */ capabilities: RecordDetailRetrieveResponse.Capabilities; /** * Discoverable direct fields plus read-only related fields used by the layout. * Each value is the saved value loaded for this record. Unreadable fields retain * metadata and layout placements with a null, MASKED value. */ fields: { [key: string]: RecordDetailRetrieveResponse.DetailTextField | RecordDetailRetrieveResponse.DetailNumberField | RecordDetailRetrieveResponse.DetailBooleanField | RecordDetailRetrieveResponse.DetailDateField | RecordDetailRetrieveResponse.DetailDateTimeField | RecordDetailRetrieveResponse.DetailCurrencyField | RecordDetailRetrieveResponse.DetailChoiceField | RecordDetailRetrieveResponse.DetailMultiChoiceField | RecordDetailRetrieveResponse.DetailReferenceField | RecordDetailRetrieveResponse.DetailNativeReferenceField | RecordDetailRetrieveResponse.DetailPercentageField | RecordDetailRetrieveResponse.DetailTimeField | RecordDetailRetrieveResponse.DetailUnsupportedField; }; /** * Effective saved page layout. */ layout: RecordDetailRetrieveResponse.Layout; /** * Custom Object API name, such as equipment\_\_c, used to address this record's * collection. Obtain it from the Custom Object definition or grid configuration. */ object_api_name: string; /** * ISO 8601 UTC timestamp of the loaded record version. Pass this exact value as * lock_update_time in the canonical record PATCH to detect stale writes. */ updated_at: string; } export declare namespace RecordDetailRetrieveResponse { /** * A configured action the caller can attempt through the existing Function * execution API. */ interface Action { /** * Stable native ObjectAction identifier. */ id: string; /** * Action API name; null for legacy actions. */ api_name: string | null; /** * Associated Function API name for the unchanged Function execution endpoints. * Discovery does not grant execution or execution-read permission. */ function_api_name: string; /** * Action display label. */ name: string; /** * Configured action placements: LIST_VIEW appears in an object grid; DETAIL_VIEW * appears on a record page. */ visibility_preferences: Array<'LIST_VIEW' | 'DETAIL_VIEW'>; } /** * Permissions and lock state for this caller. */ interface Capabilities { /** * Whether you can attempt to delete this record through the API. Validation, * business rules, or approvals may still prevent or defer deletion. */ deletable: boolean; /** * Whether at least one field represented in this response can be updated through * the API. */ editable: boolean; /** * Whether an approval or business process has locked this record for writes. A * pending approval does not necessarily lock a record. */ locked: boolean; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailTextField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * TEXT and LONG_TEXT contain text; EMAIL, URL, and PHONE_NUMBER contain their * respective textual values. */ data_type: 'TEXT' | 'LONG_TEXT' | 'EMAIL' | 'URL' | 'PHONE_NUMBER'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Readable text, including an empty string with value_state EMPTY; null when unset * or masked. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Maximum accepted characters, or null when unbounded. */ max_length?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailNumberField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * NUMBER contains a decimal quantity. */ data_type: 'NUMBER'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Decimal quantity encoded as a string to preserve precision, for example 12.50. * Units follow the configured field's meaning. Null unless value_state is PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailBooleanField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * BOOLEAN contains true or false. */ data_type: 'BOOLEAN'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Whether the configured condition is true; null unless value_state is PRESENT. */ value: boolean | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailDateField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * DATE contains a calendar date without a time or timezone. */ data_type: 'DATE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Calendar date in YYYY-MM-DD format, for example 2026-10-24; null unless * value_state is PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailDateTimeField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * DATETIME contains an instant with a timezone. */ data_type: 'DATETIME'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * ISO 8601 timestamp with timezone and up to millisecond precision, matching * native record JSON responses; null unless value_state is PRESENT. System audit * timestamps are immutable. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailCurrencyField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * CURRENCY contains a monetary amount and its currency. */ data_type: 'CURRENCY'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Currency object with an ISO 4217 currency_type and decimal-string value, for * example {"currency_type": "USD", "value": "25.00"}. The amount is in currency * units, not cents. Null unless value_state is PRESENT. */ value: DetailCurrencyField.RecordDetailCurrency | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured ISO 4217 currency code, or null when dynamic. */ currency?: string | null; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailCurrencyField { /** * Platform Currency serialized with a decimal string amount to preserve precision. */ interface RecordDetailCurrency { /** * ISO 4217 currency code, for example USD or EUR. */ currency_type: string; /** * Decimal monetary amount in currency units, for example 25.00; not integer cents. */ value: string; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailChoiceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * RADIO contains one configured choice. */ data_type: 'RADIO'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * One value from options, or an empty string with value_state EMPTY; null when * unset or masked. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailMultiChoiceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * SELECT contains zero or more configured choices. */ data_type: 'SELECT'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected values from options. An empty selection is [] with value_state EMPTY; * null when unset or masked. */ value: Array | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailReferenceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * OG_REFERENCE_FIELD identifies a reference to the object named by * reference_object, including owner_role, created_by, and last_modified_by fields. */ data_type: 'OG_REFERENCE_FIELD'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected record identifier in the reference_object target; null when empty or * masked. Retrieve Employee records through GET /workers/{id}/, Department records * through GET /departments/{id}/, and Custom Object records through GET * /custom-objects/{custom_object_api_name}/records/{id}/. Other native targets may * not have a public record endpoint; use display for their presentation. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Permitted presentation of the selection, or null when unavailable. Empty and * masked references have no presentation. */ display?: DetailReferenceField.ReferenceDisplay | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailReferenceField { /** * Optional presentation of a readable reference, independent of its identifier. */ interface ReferenceDisplay { /** * Permitted display label; never synthesized from the identifier. */ label: string; /** * Permitted image URL, or null when unavailable. */ image_url?: string | null; /** * Permitted secondary text, or null when unavailable. */ secondary_label?: string | null; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailNativeReferenceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * NATIVE_EDGE identifies a relationship using the same selected identifier and * optional presentation contract. */ data_type: 'NATIVE_EDGE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected record identifier in the reference_object target; null when empty or * masked. Retrieve Employee records through GET /workers/{id}/, Department records * through GET /departments/{id}/, and Custom Object records through GET * /custom-objects/{custom_object_api_name}/records/{id}/. Other native targets may * not have a public record endpoint; use display for their presentation. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Permitted presentation of the selection, or null when unavailable. Empty and * masked references have no presentation. */ display?: DetailNativeReferenceField.ReferenceDisplay | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailNativeReferenceField { /** * Optional presentation of a readable reference, independent of its identifier. */ interface ReferenceDisplay { /** * Permitted display label; never synthesized from the identifier. */ label: string; /** * Permitted image URL, or null when unavailable. */ image_url?: string | null; /** * Permitted secondary text, or null when unavailable. */ secondary_label?: string | null; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailPercentageField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * PERCENTAGE contains a decimal ratio, where 1 means 100%. */ data_type: 'PERCENTAGE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * JSON number containing a decimal ratio without a percent sign: 0, 0.3, 1 and 1.5 * mean 0%, 30%, 100% and 150%. Null unless PRESENT. */ value: number | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailTimeField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * TIME contains a time of day. */ data_type: 'TIME'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Time of day in HH:MM:SS format; null unless PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailUnsupportedField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * Field types whose values this endpoint does not currently represent. Edit * permission is evaluated independently of value representation. */ data_type: 'ADDRESS' | 'REFERENCE_ID' | 'COORDINATE' | 'TIMESTAMPED_CURRENCY' | 'JSONB' | 'FILE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Always null. UNSUPPORTED withholds the value representation; MASKED takes * precedence for a restricted value. Neither state grants write permission. */ value: null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * Effective saved page layout. */ interface Layout { /** * Resolved saved layout API name. */ api_name: string; /** * Semantic record header. */ header: Layout.Header; /** * Ordered, visible tabs. */ tabs: Array; } namespace Layout { /** * Semantic record header. */ interface Header { /** * Ordered summary field API names. */ fields: Array; /** * Description field API name, or null when unavailable. */ description_field?: string | null; /** * Title field API name, or null when unavailable. */ title_field?: string | null; } /** * Ordered, visible tab of sections in the effective record page layout. */ interface Tab { /** * Stable tab identifier. */ id: string; /** * Tab display name. */ label: string; /** * Ordered, visible sections. */ sections: Array; } namespace Tab { /** * Visible group of field placements, a deferred related list, or explicitly * unsupported content. */ interface Section { /** * Section identifier scoped to the effective layout. */ id: string; /** * Suggested field columns; clients may adapt to available space. */ columns: number; /** * Ordered placements for a FIELDS section. Empty for RELATED_LIST and UNSUPPORTED * sections. */ fields: Array; /** * Section display name. */ label: string; /** * FIELDS contains ordered field placements; RELATED_LIST describes a deferred * related-record grid without embedding its rows; UNSUPPORTED identifies visible * content this API cannot render. */ type: 'FIELDS' | 'RELATED_LIST' | 'UNSUPPORTED'; /** * Ordered readable columns configured for a RELATED_LIST; empty for other * sections. */ column_field_api_names?: Array; /** * Related Custom Object API name; null for other sections. */ object_api_name?: string | null; /** * CONTENT_NOT_SUPPORTED means this section requires a renderer outside this API; * RELATED_OBJECT_NOT_SUPPORTED means the related list targets a native object, * which this release cannot render. Null for supported field and Custom Object * related-list sections. */ reason?: 'CONTENT_NOT_SUPPORTED' | 'RELATED_OBJECT_NOT_SUPPORTED' | null; /** * Field on the related Custom Object that points to this record; null for other * sections. */ relationship_field_api_name?: string | null; } namespace Section { /** * Placement of a discoverable field in a saved layout; contains no field value. */ interface Field { /** * Field API name in the response fields map. */ field: string; /** * Whether this placement is read-only. */ read_only: boolean; } } } } } /** * Permissioned create form context; no record has been persisted. */ export interface RecordDetailRetrieveCreateResponse { /** * Empty: no record exists in create context. */ actions: Array; /** * Caller-safe reasons the form cannot be submitted. Hidden or unavailable field * names are not disclosed. */ blockers: Array; /** * Supported create inputs. Each value is the authorized configured default or * owner fallback for this create flow, or an EMPTY value when no eligible default * exists. Reference identifiers and display are presentation values; convert them * to the canonical record POST input shape when writing. */ fields: { [key: string]: RecordDetailRetrieveCreateResponse.DetailTextField | RecordDetailRetrieveCreateResponse.DetailNumberField | RecordDetailRetrieveCreateResponse.DetailBooleanField | RecordDetailRetrieveCreateResponse.DetailDateField | RecordDetailRetrieveCreateResponse.DetailDateTimeField | RecordDetailRetrieveCreateResponse.DetailCurrencyField | RecordDetailRetrieveCreateResponse.DetailChoiceField | RecordDetailRetrieveCreateResponse.DetailMultiChoiceField | RecordDetailRetrieveCreateResponse.DetailReferenceField | RecordDetailRetrieveCreateResponse.DetailNativeReferenceField | RecordDetailRetrieveCreateResponse.DetailPercentageField | RecordDetailRetrieveCreateResponse.DetailTimeField | RecordDetailRetrieveCreateResponse.DetailUnsupportedField; }; /** * Effective create layout after visibility and permission filtering. */ layout: RecordDetailRetrieveCreateResponse.Layout; /** * Custom Object API name for this create context. */ object_api_name: string; } export declare namespace RecordDetailRetrieveCreateResponse { /** * A configured action the caller can attempt through the existing Function * execution API. */ interface Action { /** * Stable native ObjectAction identifier. */ id: string; /** * Action API name; null for legacy actions. */ api_name: string | null; /** * Associated Function API name for the unchanged Function execution endpoints. * Discovery does not grant execution or execution-read permission. */ function_api_name: string; /** * Action display label. */ name: string; /** * Configured action placements: LIST_VIEW appears in an object grid; DETAIL_VIEW * appears on a record page. */ visibility_preferences: Array<'LIST_VIEW' | 'DETAIL_VIEW'>; } interface Blocker { /** * REQUIRED_INPUT_UNAVAILABLE means a required input cannot be supplied through the * form; NO_SUPPORTED_INPUTS means the form has no supported inputs. */ code: 'REQUIRED_INPUT_UNAVAILABLE' | 'NO_SUPPORTED_INPUTS'; /** * Caller-safe explanation of the blocker. */ message: string; /** * Field API name when safe to disclose; null when omitted to avoid exposing an * unavailable or hidden field. */ field_api_name?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailTextField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * TEXT and LONG_TEXT contain text; EMAIL, URL, and PHONE_NUMBER contain their * respective textual values. */ data_type: 'TEXT' | 'LONG_TEXT' | 'EMAIL' | 'URL' | 'PHONE_NUMBER'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Readable text, including an empty string with value_state EMPTY; null when unset * or masked. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Maximum accepted characters, or null when unbounded. */ max_length?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailNumberField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * NUMBER contains a decimal quantity. */ data_type: 'NUMBER'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Decimal quantity encoded as a string to preserve precision, for example 12.50. * Units follow the configured field's meaning. Null unless value_state is PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailBooleanField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * BOOLEAN contains true or false. */ data_type: 'BOOLEAN'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Whether the configured condition is true; null unless value_state is PRESENT. */ value: boolean | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailDateField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * DATE contains a calendar date without a time or timezone. */ data_type: 'DATE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Calendar date in YYYY-MM-DD format, for example 2026-10-24; null unless * value_state is PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailDateTimeField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * DATETIME contains an instant with a timezone. */ data_type: 'DATETIME'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * ISO 8601 timestamp with timezone and up to millisecond precision, matching * native record JSON responses; null unless value_state is PRESENT. System audit * timestamps are immutable. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailCurrencyField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * CURRENCY contains a monetary amount and its currency. */ data_type: 'CURRENCY'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Currency object with an ISO 4217 currency_type and decimal-string value, for * example {"currency_type": "USD", "value": "25.00"}. The amount is in currency * units, not cents. Null unless value_state is PRESENT. */ value: DetailCurrencyField.RecordDetailCurrency | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured ISO 4217 currency code, or null when dynamic. */ currency?: string | null; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailCurrencyField { /** * Platform Currency serialized with a decimal string amount to preserve precision. */ interface RecordDetailCurrency { /** * ISO 4217 currency code, for example USD or EUR. */ currency_type: string; /** * Decimal monetary amount in currency units, for example 25.00; not integer cents. */ value: string; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailChoiceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * RADIO contains one configured choice. */ data_type: 'RADIO'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * One value from options, or an empty string with value_state EMPTY; null when * unset or masked. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailMultiChoiceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * SELECT contains zero or more configured choices. */ data_type: 'SELECT'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected values from options. An empty selection is [] with value_state EMPTY; * null when unset or masked. */ value: Array | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailReferenceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * OG_REFERENCE_FIELD identifies a reference to the object named by * reference_object, including owner_role, created_by, and last_modified_by fields. */ data_type: 'OG_REFERENCE_FIELD'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected record identifier in the reference_object target; null when empty or * masked. Retrieve Employee records through GET /workers/{id}/, Department records * through GET /departments/{id}/, and Custom Object records through GET * /custom-objects/{custom_object_api_name}/records/{id}/. Other native targets may * not have a public record endpoint; use display for their presentation. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Permitted presentation of the selection, or null when unavailable. Empty and * masked references have no presentation. */ display?: DetailReferenceField.ReferenceDisplay | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailReferenceField { /** * Optional presentation of a readable reference, independent of its identifier. */ interface ReferenceDisplay { /** * Permitted display label; never synthesized from the identifier. */ label: string; /** * Permitted image URL, or null when unavailable. */ image_url?: string | null; /** * Permitted secondary text, or null when unavailable. */ secondary_label?: string | null; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailNativeReferenceField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * NATIVE_EDGE identifies a relationship using the same selected identifier and * optional presentation contract. */ data_type: 'NATIVE_EDGE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Selected record identifier in the reference_object target; null when empty or * masked. Retrieve Employee records through GET /workers/{id}/, Department records * through GET /departments/{id}/, and Custom Object records through GET * /custom-objects/{custom_object_api_name}/records/{id}/. Other native targets may * not have a public record endpoint; use display for their presentation. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Permitted presentation of the selection, or null when unavailable. Empty and * masked references have no presentation. */ display?: DetailNativeReferenceField.ReferenceDisplay | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } namespace DetailNativeReferenceField { /** * Optional presentation of a readable reference, independent of its identifier. */ interface ReferenceDisplay { /** * Permitted display label; never synthesized from the identifier. */ label: string; /** * Permitted image URL, or null when unavailable. */ image_url?: string | null; /** * Permitted secondary text, or null when unavailable. */ secondary_label?: string | null; } } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailPercentageField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * PERCENTAGE contains a decimal ratio, where 1 means 100%. */ data_type: 'PERCENTAGE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * JSON number containing a decimal ratio without a percent sign: 0, 0.3, 1 and 1.5 * mean 0%, 30%, 100% and 150%. Null unless PRESENT. */ value: number | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Configured decimal places, or null. */ num_of_decimal_places?: number | null; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailTimeField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * TIME contains a time of day. */ data_type: 'TIME'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Time of day in HH:MM:SS format; null unless PRESENT. */ value: string | null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * A discoverable field and its initial value and capabilities for the requested * flow. */ interface DetailUnsupportedField { /** * Field key used by layout placements and canonical record PATCH changes. Direct * keys come from the Custom Object field definition; dotted related keys are * read-only. */ api_name: string; /** * Field types whose values this endpoint does not currently represent. Edit * permission is evaluated independently of value representation. */ data_type: 'ADDRESS' | 'REFERENCE_ID' | 'COORDINATE' | 'TIMESTAMPED_CURRENCY' | 'JSONB' | 'FILE'; /** * Whether you can attempt to supply or change this field through the canonical * write API for the requested flow. This does not grant permission to browse * reference targets; submitted reference identifiers are validated when written. */ editable: boolean; /** * Field display name. */ label: string; /** * Whether this field accepts multiple selections. True for SELECT; false for RADIO * and scalar references. */ multiple: boolean; /** * Configured choice values; empty for non-choice fields. */ options: Array; /** * Why the field is read-only, or null when editable. Precedence: PERMISSION_DENIED * (no field read or update access), RECORD_LOCKED (writes locked), IMMUTABLE * (cannot change), MANAGED_WRITE_RESTRICTED (application-managed or generated * value), DERIVED (calculated value), MASKED (restricted value), * REFERENCE_UNAVAILABLE (unavailable reference target), UNSUPPORTED (not accepted * by this requested flow). */ read_only_reason: 'PERMISSION_DENIED' | 'RECORD_LOCKED' | 'IMMUTABLE' | 'MANAGED_WRITE_RESTRICTED' | 'DERIVED' | 'MASKED' | 'REFERENCE_UNAVAILABLE' | 'UNSUPPORTED' | null; /** * Whether a nonempty value is required by the field schema. */ required: boolean; /** * Always null. UNSUPPORTED withholds the value representation; MASKED takes * precedence for a restricted value. Neither state grants write permission. */ value: null; /** * State of the value supplied for this requested flow: PRESENT for a readable * nonempty value, including false and zero; EMPTY for null, an empty string, or an * empty array; MASKED when access to the field or a referenced value is * restricted; or UNSUPPORTED when the endpoint does not represent the value. * UNSUPPORTED does not determine edit permission. */ value_state: 'PRESENT' | 'EMPTY' | 'MASKED' | 'UNSUPPORTED'; /** * Whether the field value supplied for this requested flow is readable. Create * responses describe only an authorized initial value and do not grant access to * any existing record. A referenced record may have separate access restrictions. */ viewable: boolean; /** * Target object API name for a supported reference, such as Employee, Department, * or a Custom Object API name ending in \_\_c. The available native targets depend * on the relationships configured in the saved layout and the caller's access. * Null for other fields and unsupported reference targets. */ reference_object?: string | null; } /** * Effective create layout after visibility and permission filtering. */ interface Layout { /** * Resolved saved layout API name. */ api_name: string; /** * Semantic record header. */ header: Layout.Header; /** * Ordered, visible tabs. */ tabs: Array; } namespace Layout { /** * Semantic record header. */ interface Header { /** * Ordered summary field API names. */ fields: Array; /** * Description field API name, or null when unavailable. */ description_field?: string | null; /** * Title field API name, or null when unavailable. */ title_field?: string | null; } /** * Ordered, visible tab of sections in the effective record page layout. */ interface Tab { /** * Stable tab identifier. */ id: string; /** * Tab display name. */ label: string; /** * Ordered, visible sections. */ sections: Array; } namespace Tab { /** * Visible group of field placements, a deferred related list, or explicitly * unsupported content. */ interface Section { /** * Section identifier scoped to the effective layout. */ id: string; /** * Suggested field columns; clients may adapt to available space. */ columns: number; /** * Ordered placements for a FIELDS section. Empty for RELATED_LIST and UNSUPPORTED * sections. */ fields: Array; /** * Section display name. */ label: string; /** * FIELDS contains ordered field placements; RELATED_LIST describes a deferred * related-record grid without embedding its rows; UNSUPPORTED identifies visible * content this API cannot render. */ type: 'FIELDS' | 'RELATED_LIST' | 'UNSUPPORTED'; /** * Ordered readable columns configured for a RELATED_LIST; empty for other * sections. */ column_field_api_names?: Array; /** * Related Custom Object API name; null for other sections. */ object_api_name?: string | null; /** * CONTENT_NOT_SUPPORTED means this section requires a renderer outside this API; * RELATED_OBJECT_NOT_SUPPORTED means the related list targets a native object, * which this release cannot render. Null for supported field and Custom Object * related-list sections. */ reason?: 'CONTENT_NOT_SUPPORTED' | 'RELATED_OBJECT_NOT_SUPPORTED' | null; /** * Field on the related Custom Object that points to this record; null for other * sections. */ relationship_field_api_name?: string | null; } namespace Section { /** * Placement of a discoverable field in a saved layout; contains no field value. */ interface Field { /** * Field API name in the response fields map. */ field: string; /** * Whether this placement is read-only. */ read_only: boolean; } } } } } export interface RecordDetailRetrieveParams { /** * Custom Object API name, such as equipment\_\_c. Obtain it from the Custom Object * definition or the grid's configured object. */ object_api_name: string; /** * Select the saved Custom Object page layout by API name. Omit to use default. * Keep the resolved layout.api_name from the detail response when loading related * sections. */ layout_api_name?: string; } export interface RecordDetailRetrieveCreateParams { /** * Custom Object API name, such as equipment\_\_c. Obtain it from the Custom Object * definition or the grid's configured object. */ object_api_name: string; /** * Select the saved Custom Object page layout by API name. Omit to use default. * Keep the resolved layout.api_name from the detail response when loading related * sections. */ layout_api_name?: string; } export declare namespace RecordDetails { export { type RecordDetailRetrieveResponse as RecordDetailRetrieveResponse, type RecordDetailRetrieveCreateResponse as RecordDetailRetrieveCreateResponse, type RecordDetailRetrieveParams as RecordDetailRetrieveParams, type RecordDetailRetrieveCreateParams as RecordDetailRetrieveCreateParams, }; } //# sourceMappingURL=record-details.d.ts.map