Pro API Client¶
- class ProApi(request_method: Callable[..., requests.Response], concurrent_requests_method: Callable[..., Iterator])¶
Provides an interface to the Jamf Pro API.
- Parameters:
request_method (Callable[..., requests.Response])
concurrent_requests_method (Callable[..., Iterator])
- get_computer_inventory_v1(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[False] = False) List[Computer]¶
- get_computer_inventory_v1(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[True] = True) Iterator[Page]
Returns a list of computer inventory records.
Deprecated since version The: v1 computer inventory API is deprecated by Jamf (2025-06-30). Use
get_computer_inventory_v3()instead.- Parameters:
sections (List[str]) –
(optional) Select which sections of the computer’s details to return. If not specific the request will default to
GENERAL. IfALLis passed then all sections will be returned.Allowed sections:
ALL,GENERAL,DISK_ENCRYPTION,PURCHASING,APPLICATIONS,STORAGE,USER_AND_LOCATION,CONFIGURATION_PROFILES,PRINTERS,SERVICES,HARDWARE,LOCAL_USER_ACCOUNTS,CERTIFICATES,ATTACHMENTS,PLUGINS,PACKAGE_RECEIPTS,FONTS,SECURITY,OPERATING_SYSTEM,LICENSED_SOFTWARE,IBEACONS,SOFTWARE_UPDATES,EXTENSION_ATTRIBUTES,CONTENT_CACHING,GROUP_MEMBERSHIPSstart_page (int) – (optional) The page to begin returning results from. See
Paginatorfor more information.end_page – (optional) The page to end returning results at. See
Paginatorfor more information.page_size (int) – (optional) The number of results to include in each requested page. See
Paginatorfor more information.sort_expression (SortExpression) –
(optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
Allowed sort fields:
general.name,udid,id,general.assetTag,general.jamfBinaryVersion,general.lastContactTime,general.lastEnrolledDate,general.lastCloudBackupDate,general.reportDate,general.remoteManagement.managementUsername,general.mdmCertificateExpiration,general.platform,hardware.make,hardware.model,operatingSystem.build,operatingSystem.supplementalBuildVersion,operatingSystem.rapidSecurityResponse,operatingSystem.name,operatingSystem.version,userAndLocation.realname,purchasing.lifeExpectancy,purchasing.warrantyDatefilter_expression (FilterExpression) –
(optional) The filter expression to apply to the request. See the documentation for Filtering for more information.
Allowed filter fields:
general.name,udid,id,general.assetTag,general.barcode1,general.barcode2,general.enrolledViaAutomatedDeviceEnrollment,general.lastIpAddress,general.itunesStoreAccountActive,general.jamfBinaryVersion,general.lastContactTime,general.lastEnrolledDate,general.lastCloudBackupDate,general.reportDate,general.lastReportedIp,general.managementId,general.remoteManagement.managed,general.mdmCapable.capable,general.mdmCertificateExpiration,general.platform,general.supervised,general.userApprovedMdm,general.declarativeDeviceManagementEnabled,hardware.bleCapable,hardware.macAddress,hardware.make,hardware.model,hardware.modelIdentifier,hardware.serialNumber,hardware.supportsIosAppInstalls,hardware.appleSilicon,operatingSystem.activeDirectoryStatus,operatingSystem.fileVault2Status,operatingSystem.build,operatingSystem.supplementalBuildVersion,operatingSystem.rapidSecurityResponse,operatingSystem.name,operatingSystem.version,security.activationLockEnabled,security.recoveryLockEnabled,security.firewallEnabled,userAndLocation.buildingId,userAndLocation.departmentId,userAndLocation.email,userAndLocation.realname,userAndLocation.phone,userAndLocation.position,userAndLocation.room,userAndLocation.username,diskEncryption.fileVault2Enabled,purchasing.appleCareId,purchasing.lifeExpectancy,purchasing.purchased,purchasing.leased,purchasing.vendor,purchasing.warrantyDatereturn_generator (bool) – If
Truea generator is returned to iterate over pages. By default, the results for all pages will be returned in a single response.
- Returns:
List of computers OR a paginator generator.
- Return type:
List[Computer] | Iterator[Page]
- get_computer_inventory_v3(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[False] = False) List[Computer]¶
- get_computer_inventory_v3(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[True] = True) Iterator[Page]
Returns a list of computer inventory records using the v3 API.
This replaces
get_computer_inventory_v1()which uses an API deprecated by Jamf.- Parameters:
sections (List[str]) –
(optional) Select which sections of the computer’s details to return. If not specified the request will default to
GENERAL. IfALLis passed then all sections will be returned.Allowed sections:
ALL,GENERAL,DISK_ENCRYPTION,PURCHASING,APPLICATIONS,STORAGE,USER_AND_LOCATION,CONFIGURATION_PROFILES,PRINTERS,SERVICES,HARDWARE,LOCAL_USER_ACCOUNTS,CERTIFICATES,ATTACHMENTS,PACKAGE_RECEIPTS,SECURITY,OPERATING_SYSTEM,LICENSED_SOFTWARE,IBEACONS,SOFTWARE_UPDATES,EXTENSION_ATTRIBUTES,CONTENT_CACHING,GROUP_MEMBERSHIPSstart_page (int) – (optional) The page to begin returning results from. See
Paginatorfor more information.end_page (int) – (optional) The page to end returning results at. See
Paginatorfor more information.page_size (int) – (optional) The number of results to include in each requested page. See
Paginatorfor more information.sort_expression (SortExpression) –
(optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
Allowed sort fields:
general.name,udid,id,general.assetTag,general.jamfBinaryVersion,general.lastContactTime,general.lastEnrolledDate,general.lastCloudBackupDate,general.reportDate,general.mdmCertificateExpiration,general.platform,general.lastLoggedInUsernameSelfService,general.lastLoggedInUsernameSelfServiceTimestamp,general.lastLoggedInUsernameBinary,general.lastLoggedInUsernameBinaryTimestamp,hardware.make,hardware.model,operatingSystem.build,operatingSystem.supplementalBuildVersion,operatingSystem.rapidSecurityResponse,operatingSystem.name,operatingSystem.version,userAndLocation.realname,purchasing.lifeExpectancy,purchasing.warrantyDatefilter_expression (FilterExpression) –
(optional) The filter expression to apply to the request. See the documentation for Filtering for more information.
Allowed filter fields:
general.name,udid,id,general.assetTag,general.barcode1,general.barcode2,general.enrolledViaAutomatedDeviceEnrollment,general.lastIpAddress,general.itunesStoreAccountActive,general.jamfBinaryVersion,general.lastContactTime,general.lastEnrolledDate,general.lastCloudBackupDate,general.reportDate,general.lastReportedIp,general.lastReportedIpV4,general.lastReportedIpV6,general.managementId,general.remoteManagement.managed,general.mdmCapable.capable,general.mdmCertificateExpiration,general.platform,general.supervised,general.userApprovedMdm,general.declarativeDeviceManagementEnabled,general.lastLoggedInUsernameSelfService,general.lastLoggedInUsernameSelfServiceTimestamp,general.lastLoggedInUsernameBinary,general.lastLoggedInUsernameBinaryTimestamp,hardware.bleCapable,hardware.macAddress,hardware.make,hardware.model,hardware.modelIdentifier,hardware.serialNumber,hardware.supportsIosAppInstalls,hardware.appleSilicon,operatingSystem.activeDirectoryStatus,operatingSystem.fileVault2Status,operatingSystem.build,operatingSystem.supplementalBuildVersion,operatingSystem.rapidSecurityResponse,operatingSystem.name,operatingSystem.version,security.activationLockEnabled,security.recoveryLockEnabled,security.firewallEnabled,userAndLocation.buildingId,userAndLocation.departmentId,userAndLocation.email,userAndLocation.realname,userAndLocation.phone,userAndLocation.position,userAndLocation.room,userAndLocation.username,diskEncryption.fileVault2Enabled,purchasing.appleCareId,purchasing.lifeExpectancy,purchasing.purchased,purchasing.leased,purchasing.vendor,purchasing.warrantyDatereturn_generator (bool) – If
Truea generator is returned to iterate over pages. By default, the results for all pages will be returned in a single response.
- Returns:
List of computers OR a paginator generator.
- Return type:
- get_computer_inventory_detail_v3(computer_id: int | str) Computer¶
Return all sections of a computer inventory record.
- Parameters:
computer_id (Union[int, str]) – The ID of the computer record.
- Returns:
A full computer inventory record with all sections.
- Return type:
- get_computer_v3(computer_id: int | str, sections: List[str] | None = None) Computer¶
Return a computer inventory record by ID with optional section selection.
- Parameters:
computer_id (Union[int, str]) – The ID of the computer record.
sections (List[str]) – (optional) Select which sections of the computer’s details to return. If not specified, returns the GENERAL section.
- Returns:
A computer inventory record.
- Return type:
- update_computer_v3(computer_id: int | str, data: dict | Computer) Computer¶
Update specific fields on a computer inventory record.
- delete_computer_v3(computer_id: int | str) None¶
Delete a computer inventory record.
- Parameters:
computer_id (Union[int, str]) – The ID of the computer record.
- Return type:
None
- get_packages_v1(start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[False] = False) List[Package]¶
- get_packages_v1(start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[True] = True) Iterator[Page]
Returns a list of package records.
- Parameters:
start_page (int) – (optional) The page to begin returning results from. See
Paginatorfor more information.end_page – (optional) The page to end returning results at. See
Paginatorfor more information.page_size (int) – (optional) The number of results to include in each requested page. See
Paginatorfor more information.sort_expression (SortExpression) –
(optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
Allowed sort fields:
id,packageName,fileName,categoryId,info,notes,manifestFileNamefilter_expression (FilterExpression) –
(optional) The filter expression to apply to the request. See the documentation for Filtering for more information.
Allowed filter fields:
id,packageName,fileName,categoryId,info,notes,manifestFileNamereturn_generator (bool) – If
Truea generator is returned to iterate over pages. By default, the results for all pages will be returned in a single response.
- Returns:
List of packages OR a paginator generator.
- Return type:
List[package] | Iterator[Page]
- upload_package_v1(package_id: int | str, file_path: str | Path) HrefResponse¶
Upload a package file to a package record.
This is the replacement for the deprecated JCDS v1 file upload workflow. Instead of uploading to S3 via JCDS credentials, the file is uploaded directly to Jamf Pro using a multipart form upload.
- Parameters:
package_id (Union[int, str]) – The ID of the package to upload the file to. The package must already exist (create it first with the Classic API or Pro API).
file_path (Union[str, Path]) – The path to the file to upload.
- Returns:
An HrefResponse with the package ID and href.
- Return type:
HrefResponse
- get_jcds_files_v1() List[File]¶
Return a list of files in the JCDS.
Deprecated since version The: JCDS v1 API is deprecated by Jamf (2025-08-28). Use
upload_package_v1()for uploading packages instead.- Returns:
List JCDS File objects.
- Return type:
List[File]
- create_jcds_file_v1() NewFile¶
Create a new file in the JCDS.
Deprecated since version The: JCDS v1 API is deprecated by Jamf (2025-08-28). Use
upload_package_v1()for uploading packages instead.- Returns:
A JCDS NewFile object.
- Return type:
- get_jcds_file_v1(file_name: str) DownloadUrl¶
Read a JCDS file record by its filename.
Deprecated since version The: JCDS v1 API is deprecated by Jamf (2025-08-28).
- Returns:
A JCDS DownloadUrl object.
- Return type:
- Parameters:
file_name (str)
- delete_jcds_file_v1(file_name: str) None¶
Delete a file from the JCDS.
Deprecated since version The: JCDS v1 API is deprecated by Jamf (2025-08-28).
Warning
This operation WILL NOT delete an associated package object. It is recommended to use
delete_package_by_id().- Parameters:
file_name (str)
- Return type:
None
- renew_mdm_profile_v1(udids: List[str | UUID]) RenewMdmProfileResponse¶
Renews device MDM Profiles, including the device identity certificate within the MDM Profile.
- Parameters:
udids (List[str, UUID]) – A list of device UDIDs to issue the profile renewal action to.
- Returns:
The
RenewMdmProfileResponsereturned may or may not contain a UDIDs not processed for renewal.- Return type:
- send_mdm_command_preview(management_ids: List[str | UUID], command: MdmCommand) List[SendMdmCommandResponse]¶
Send an MDM command to one or more devices.
Deprecated since version The: preview MDM commands API has been removed from the Jamf Pro API schema. Use
send_mdm_command_v2()instead.Example usage:
from jamf_pro_sdk.models.pro.mdm import LogOutUserCommand client.pro_api.send_mdm_command_preview( management_ids=["4eecc1fb-f52d-48c5-9560-c246b23601d3"], command=LogOutUserCommand() )
Read the documentation for MDM Commands to view all the options for the supported MDM commands . The management IDs can be obtained from computer inventory records at
computer.general.managementId.This value is only available through the Pro API. See
ComputerGeneralfor more details.- Parameters:
management_ids (List[Union[str, UUID]],) – A list of device management IDs to issue the MDM command to.
command (MdmCommand) – The MDM command to send. Any subclass of
MdmCommand(includingCustomCommandfor unsupported types).
- Returns:
A list of command responses.
- Return type:
List[SendMdmCommandResponse]
- send_mdm_command_v2(management_ids: List[str | UUID], command: MdmCommand) List[HrefResponse]¶
Send an MDM command to one or more devices using the v2 API.
This replaces
send_mdm_command_preview()which used an API that has been removed from the Jamf Pro API schema.Example usage:
from jamf_pro_sdk.models.pro.mdm import LogOutUserCommand client.pro_api.send_mdm_command_v2( management_ids=["4eecc1fb-f52d-48c5-9560-c246b23601d3"], command=LogOutUserCommand() )
The v2 API supports many more command types than the preview API. See the MDM command models in
jamf_pro_sdk.models.pro.mdmfor all supported commands.The management IDs can be obtained from computer inventory records at
computer.general.managementId.- Parameters:
management_ids (List[Union[str, UUID]]) – A list of device management IDs to issue the MDM command to.
command (MdmCommand) – The MDM command to send. Any subclass of
MdmCommand(includingCustomCommandfor unsupported types).
- Returns:
A list of href responses referencing the created commands.
- Return type:
List[HrefResponse]
- get_mdm_commands_v2(filter_expression: FilterExpression, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, return_generator: Literal[False] = False) List[MdmCommandStatus]¶
- get_mdm_commands_v2(filter_expression: FilterExpression, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, return_generator: Literal[True] = True) Iterator[Page]
Returns a list of MDM commands.
- Parameters:
filter_expression (FilterExpression) –
The filter expression to apply to the request. At least one filter is required for this operation. See the documentation for Filtering for more information.
Allowed filter fields:
uuid,clientManagementId,command,status,clientType,dateSent,validAfter,dateCompleted,profileId,activestart_page (int) – (optional) The page to begin returning results from. See
Paginatorfor more information.end_page – (optional) The page to end returning results at. See
Paginatorfor more information.page_size (int) – (optional) The number of results to include in each requested page. See
Paginatorfor more information.sort_expression (SortExpression) –
(optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
Allowed sort fields:
uuid,clientManagementId,command,status,dateSent,validAfter,dateCompleted,profileIdentifier,activereturn_generator (bool) – If
Truean iterator is returned that yields pages. By default, the results for all pages will be returned in a single response.
- Returns:
List of MDM commands OR a paginator generator.
- Return type:
List[MdmCommand] | Iterator[Page]
- get_mobile_device_inventory_v2(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[False] = False) List[MobileDevice]¶
- get_mobile_device_inventory_v2(sections: List[str] | None = None, start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, return_generator: Literal[True] = True) Iterator[Page]
Returns a list of mobile device (iOS and tvOS) inventory records.
- Parameters:
sections (List[str]) –
(optional) Select which sections of the computer’s details to return. If not specific the request will default to
GENERAL. IfALLis passed then all sections will be returned.Allowed sections:
GENERAL,HARDWARE,USER_AND_LOCATION,PURCHASING,SECURITY,APPLICATIONS,EBOOKS,NETWORK,SERVICE_SUBSCRIPTIONS,CERTIFICATES,PROFILES,USER_PROFILES,PROVISIONING_PROFILES,SHARED_USERS,EXTENSION_ATTRIBUTESstart_page (int) – (optional) The page to begin returning results from. See
Paginatorfor more information.end_page – (optional) The page to end returning results at. See
Paginatorfor more information.page_size (int) – (optional) The number of results to include in each requested page. See
Paginatorfor more information.sort_expression (SortExpression) –
(optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
Allowed sort fields:
airPlayPassword,appAnalyticsEnabled,assetTag,availableSpaceMb,batteryLevel,batteryHealth,bluetoothLowEnergyCapable,bluetoothMacAddress,capacityMb,lostModeEnabledDate,declarativeDeviceManagementEnabled,deviceId,deviceLocatorServiceEnabled,devicePhoneNumber,diagnosticAndUsageReportingEnabled,displayName,doNotDisturbEnabled,enrollmentSessionTokenValid,exchangeDeviceId,cloudBackupEnabled,osBuild,osSupplementalBuildVersion,osVersion,osRapidSecurityResponse,ipAddress,itunesStoreAccountActive,mobileDeviceId,languages,lastBackupDate,lastEnrolledDate,lastCloudBackupDate,lastInventoryUpdateDate,locales,locationServicesForSelfServiceMobileEnabled,lostModeEnabled,managed,mdmProfileExpirationDate,model,modelIdentifier,modelNumber,modemFirmwareVersion,quotaSize,residentUsers,serialNumber,sharedIpad,supervised,tethered,timeZone,udid,usedSpacePercentage,wifiMacAddress,deviceOwnershipType,building,department,emailAddress,fullName,userPhoneNumber,position,room,username,appleCareId,leaseExpirationDate,lifeExpectancyYears,poDate,poNumber,purchasePrice,purchasedOrLeased,purchasingAccount,purchasingContact,vendor,warrantyExpirationDate,activationLockEnabled,blockEncryptionCapable,dataProtection,fileEncryptionCapable,hardwareEncryptionSupported,jailbreakStatus,passcodeCompliant,passcodeCompliantWithProfile,passcodeLockGracePeriodEnforcedSeconds,passcodePresent,personalDeviceProfileCurrent,carrierSettingsVersion,cellularTechnology,currentCarrierNetwork,currentMobileCountryCode,currentMobileNetworkCode,dataRoamingEnabled,eid,network,homeMobileCountryCode,homeMobileNetworkCode,iccid,imei,imei2,meid,personalHotspotEnabled,voiceRoamingEnabled,roamingfilter_expression (FilterExpression) –
(optional) The filter expression to apply to the request. See the documentation for Filtering for more information.
Allowed filter fields:
airPlayPassword,appAnalyticsEnabled,assetTag,availableSpaceMb,batteryLevel,bluetoothLowEnergyCapable,bluetoothMacAddress,capacityMb,declarativeDeviceManagementEnabled,deviceId,deviceLocatorServiceEnabled,devicePhoneNumber,diagnosticAndUsageReportingEnabled,displayName,doNotDisturbEnabled,exchangeDeviceId,cloudBackupEnabled,osBuild,osSupplementalBuildVersion,osVersion,osRapidSecurityResponse,ipAddress,itunesStoreAccountActive,mobileDeviceId,languages,lastInventoryUpdateDate,locales,locationServicesForSelfServiceMobileEnabled,lostModeEnabled,managed,model,modelIdentifier,modelNumber,modemFirmwareVersion,quotaSize,residentUsers,serialNumber,sharedIpad,supervised,tethered,timeZone,udid,usedSpacePercentage,wifiMacAddress,building,department,emailAddress,fullName,userPhoneNumber,position,room,username,appleCareId,lifeExpectancyYears,poNumber,purchasePrice,purchasedOrLeased,purchasingAccount,purchasingContact,vendor,activationLockEnabled,blockEncryptionCapable,dataProtection,fileEncryptionCapable,passcodeCompliant,passcodeCompliantWithProfile,passcodeLockGracePeriodEnforcedSeconds,passcodePresent,personalDeviceProfileCurrent,carrierSettingsVersion,currentCarrierNetwork,currentMobileCountryCode,currentMobileNetworkCode,dataRoamingEnabled,eid,network,homeMobileCountryCode,homeMobileNetworkCode,iccid,imei,imei2,meid,personalHotspotEnabled,roamingreturn_generator (bool) – If
Truea generator is returned to iterate over pages. By default, the results for all pages will be returned in a single response.
- Returns:
List of computers OR a paginator generator.
- Return type:
List[MobileDevice] | Iterator[Page]
Pagination¶
- class Paginator(api_client: ProApi, resource_path: str, return_model: Type[BaseModel], start_page: int = 0, end_page: int | None = None, page_size: int = 100, sort_expression: SortExpression | None = None, filter_expression: FilterExpression | None = None, extra_params: Dict[str, str] | None = None)¶
A paginator for the Jamf Pro API. A paginator automatically iterates over an API if multiple unreturned pages are detected in the response. Paginated requests are performed concurrently.
- Parameters:
api_client (ProApi) – A Jamf Pro API client.
resource_path (str) – The API resource path the paginator will make requests to. This path should begin with the API version and not the
/apibase path.return_model (Type[BaseModel]) – A Pydantic model to parse the results of the request as. If not set the raw JSON response is returned.
start_page (int) –
(optional) The page to begin returning results from. Generally this value should be left at the default (
0).Note
Pages in the Pro API are zero-indexed. In a response that includes 10 pages the first page is
0and the last page is9.end_page (Optional[int]) – (optional) The page number to stop pagination on. The
end_pageargument allows for retrieving page ranges (e.g. 2 - 4) or a single page result by using the same number for both start and end values.page_size (int) – (optional) The number of results to include in each requested page. The default value is
100and the maximum value is2000.sort_expression (SortExpression) – (optional) The sort fields to apply to the request. See the documentation for Sorting for more information.
filter_expression (FilterExpression) – (optional) The filter expression to apply to the request. See the documentation for Filtering for more information.
extra_params (Dict[str, str]) – (optional) A dictionary of key-value pairs that will be added to the query string parameters of the requests.
- __call__(return_generator: bool = True) List | Iterator[Page]¶
Call the instantiated paginator to return results.
- Parameters:
return_generator (bool) – If
Truea generator is returned to iterate over pages. IfFalsethe results for all pages will be returned in a single list response.- Returns:
An iterator that yields
Pageobjects, or a list of responses ifreturn_generatorisFalse.- Return type:
Union[List, Iterator[Page]]
- class FilterExpression(filter_expression: str, fields: List[FilterEntry])¶
- Parameters:
filter_expression (str)
fields (List[FilterEntry])
- class FilterField(name: str)¶
- Parameters:
name (str)
- filter_group(expression: FilterExpression) FilterExpression¶
- Parameters:
expression (FilterExpression)
- Return type:
- class SortExpression(sort_expression: str, fields: List[str])¶
- Parameters:
sort_expression (str)
fields (List[str])
- class SortField(field: str)¶
- Parameters:
field (str)