--- title: NowAttachmentMetadata structure - iOS description: The NowAttachmentMetadata structure provides functions that enable you to encode and manage attachment metadata.Encodes the current object value into data using the specified encoder.Creates a new NowAttachmentMetadata instance by decoding data into an object from the specified decoder. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/cllent-mobile-api-reference/NowAttachmentMetadataiOSStructure.html release: australia product: Cllent Mobile API Reference classification: cllent-mobile-api-reference topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 2 breadcrumb: [Mobile SDK - iOS, Mobile SDK API reference, API reference, API implementation and reference] --- # NowAttachmentMetadata structure- iOS The NowAttachmentMetadata structure provides functions that enable you to encode and manage attachment metadata.
Name Type Description
averageImageColor String Most dominant color in the associated image.
chunkSizeInBytes Integer Size of the chunk.Unit: Bytes
compressed​Size​InBytes Integer Compressed size of the attachment.Unit: Bytes
created Date Date on which the attachment was created.
createdBy String Entity that created the attachment.
download URL URL of the attachment on the ServiceNow instance.
fileName String Name of the attachment file.
hash String Expected SHA256 digest for the attachment.A downloaded attachment is [validated](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/NowAttachmentiOSStructure.md) by comparing its computed digest to this SHA256 digest.
imageHeight Integer Height of image.Unit: Pixels
imageWidth Integer Width of image.Unit: Pixels
isCompressed Boolean Flag that indicates whether the attachment file is compressed.Possible values: - true: Attachment is compressed. - false: Attachment in not compressed.
mimeType String Attachment MIME type.
modificationCount Integer Number of times that the attachment was modified.
sizeInBytes Integer Size of the attachment.Unit: Bytes
sourceSysId String Sys\_id of the attachment file.
sourceTableName String Name of the source table in which the attachment resides.
state   Availability state, such as conditionally, unavailable, available, and pending.
sysId String Unique 32-character Globally Unique ID \(GUID\), that identifies each record in a ServiceNow instance.
tags String List of tags associated with the attachment.
updated Date Date on which the attachment was last modified.
updatedBy String Entity that updated the attachment.
**Parent Topic:**[Mobile SDK - iOS](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/MobileSDKiOSAPI.md) ## NowAttachmentMetadata - encode\(to encoder: Encoder\) Encodes the current object value into data using the specified encoder. If the object fails to be encoded into data, the encoder encodes an empty [keyed container](https://developer.apple.com/documentation/swift/keyeddecodingcontainer) in its place. This function also throws an error if any values are invalid for the specified encoder's format. |Name|Type|Description| |----|----|-----------| |to encoder|[Encoder](https://developer.apple.com/documentation/swift/encoder)|Encoder that defines the structure of the encoded output.| |Type|Description| |----|-----------| |None| | The following code example shows how to call this function. ``` let query = "active=true^short_descriptionLIKEbroken" let filter = Filter(query: query) metadataPublisher(filter: filter, limit: 1) private func metadataPublisher(filter: Filter?, limit: Int?) { let publisher = attachmentService.attachmentMetadata(filter: filter, limit: limit) publisher .receive(on: DispatchQueue.main) .encode(encoder: JSONEncoder()) .sink { [weak self] completion in if case let .failure(error) = completion { // attachment published failed, return NowDataError } } receiveValue: { [weak self] (data) in // Attachment published successful, return data } .store(in: &subscriptions) } ``` ## NowAttachmentMetadata - init\(from decoder: Decoder\) Creates a new NowAttachmentMetadata instance by decoding data into an object from the specified decoder. This method throws an error if reading from the decoder fails or if the data read is corrupt or otherwise invalid. |Name|Type|Description| |----|----|-----------| |decoder|Decoder|Decoder to read data from.| |Type|Description| |----|-----------| |None| | The following code example shows how to call this function. ``` guard let metadataHeader = response.httpResponse?.value(forHTTPHeaderField: NowAttachment.attachmentMetadataHeaderKey), let metadataHeaderData = metadataHeader.data(using: .utf8) else { throw NowDataError.missingAttachmentMetadata } let metadata = try coder.decode(NowAttachmentMetadata.self, from: metadataHeaderData) let attachment = NowAttachment(metadata: metadata, data: response.data) ```