Framework

Intents

Create an app extension that handles Siri-related requests for your app’s services.

Overview

The Intents framework (Intents.framework) supports the handling of SiriKit interactions. You use the classes of this framework to define an Intents extension, which is an app extension that processes user requests originating from Siri or Maps. When the user requests your app services through one of these conduits, the system forwards those requests to your Intents extension for handling. You use the classes of this framework to receive the data from the user and to provide an appropriate response.

For information about how to use this framework to implement an Intents extension, see SiriKit Programming Guide.

Symbols

Core Extension

INExtension

Represents the entry point for an Intents extension.

INIntentHandlerProviding

Contains the interface for dispatching intents to the custom objects that handle those intents.

INIntent

Describes a request for you to fulfill using your Intents extension.

INIntentResponse

Contains your response to an intent object.

INInteraction

Defines an interaction between the user and your app involving an intent object.

INPreferences

Manages the preferences and authorization related to using SiriKit.

INVocabulary

Registers any user-specific vocabulary that might be included in Siri requests.

INIntentHandlingStatus

Constants indicating the current state of the interaction.

INInteractionDirection

Constants indicating whether the app is providing or receiving information.

INSiriAuthorizationStatus

Constants indicating the authorization status of your Intents extension.

VoIP Calling

INCallsDomainHandling

Provides a convenient way to adopt all of the protocols in the VoIP calling domain

INSearchCallHistoryIntentHandling

Handles the searching of the user’s call history.

INSearchCallHistoryIntent

Requests a list of calls matching the specified criteria.

INSearchCallHistoryIntentResponse

Contains your app’s response to a search call history intent.

INStartAudioCallIntentHandling

Handles the initiation of an audio call by your app.

INStartAudioCallIntent

Requests an audio-only call with one or more users.

INStartAudioCallIntentResponse

Contains your app’s response to a start audio call intent.

INStartVideoCallIntentHandling

Handles the initiation of a video call by your app.

INStartVideoCallIntent

Requests a video call with one or more users.

INStartVideoCallIntentResponse

Contains your app’s response to a start video call intent.

INCallRecordType

Constants describing the type of the call.

INCallCapabilityOptions

Constants indicating the capabilities of the call.

INCallRecordTypeResolutionResult

Provides the resolution for intent parameters whose type is INCallRecordType.

Messages

INMessagesDomainHandling

Provides a convenient way to adopt all of the protocols in the messages domain.

INSearchForMessagesIntentHandling

Handles the searching of the current user’s messages.

INSearchForMessagesIntent

Requests a list of messages matching the specified criteria.

INSearchForMessagesIntentResponse

Contains your app’s response to a search for messages intent.

INSendMessageIntentHandling

Handles the sending of messages to one or more designated users.

INSendMessageIntent

Requests the sending of a message to the designated recipients.

INSendMessageIntentResponse

Contains your app’s response to a send message intent.

INSetMessageAttributeIntentHandling

Handles the modification of message attributes.

INSetMessageAttributeIntent

Requests that you modify the attributes of a message.

INSetMessageAttributeIntentResponse

Contains your app’s response to a set message attribute intent.

INMessage

Contains information about a message managed by your app.

INMessageAttribute

Constants indicating an attribute of a message.

INMessageAttributeOptions

Constants indicating the status of a message.

INMessageAttributeResolutionResult

Provides the resolution for intent parameters whose type is INMessageAttribute.

INMessageAttributeOptionsResolutionResult

Provides the resolution for intent parameters whose type is INMessageAttributeOptions.

Payments

INPaymentsDomainHandling

Provides a convenient way to adopt all of the protocols in the payments domain.

INSendPaymentIntentHandling

Handles the transfer of money from the current user’s account to a different user’s account.

INSendPaymentIntent

Requests the transfer of money from the current user’s account to a different user’s account.

INSendPaymentIntentResponse

Contains your app’s response to a send payment intent.

INRequestPaymentIntentHandling

Handles the delivery of a request for payment from another user of your app.

INRequestPaymentIntent

Requests money from another user’s account.

INRequestPaymentIntentResponse

Contains your app’s response to a request payment intent.

INPayBillIntentHandling

Handles the payment of a bill using money from the user's account.

INPayBillIntent

Requests the transfer of money to facilitate payment of a bill.

INPayBillIntentResponse

Contains your app's response to a pay bill intent.

INSearchForBillsIntentHandling

Searches for bills associated with the user.

INSearchForBillsIntent

Requests a list of bills matching the specified criteria.

INSearchForBillsIntentResponse

Contains your app's response to a search for bills intent.

INBillDetails

The detailed information associated with a bill.

INBillPayee

The entity that receives the proceeds from a bill payment.

INPaymentAccount

A user account that provides the funds when making a payment.

INPaymentAmount

The amount of money to apply to a bill payment.

INPaymentMethod

Contains information about a form of payment supported by your app.

INPaymentRecord

Contains detailed information about a financial transaction made between two users.

INPaymentStatus

Constants indicating the state of the financial transaction.

INBillTypeResolutionResult

Provides the resolution for intent parameters whose type is INBillType.

INBillPayeeResolutionResult

Describes the result of resolving the entity that receives payment for a bill.

INPaymentStatusResolutionResult

Describes the result of resolving the payment status for bill during a search.

INPaymentAccountResolutionResult

Describes the result of resolving the user account that provides the funds to pay a bill.

INPaymentAmountResolutionResult

Describes the result of resolving the amount to be paid for a bill.

Photos

INPhotosDomainHandling

Provides a convenient way to adopt all of the protocols in the photos domain.

INSearchForPhotosIntentHandling

Handles the searching of the user’s photos.

INSearchForPhotosIntent

Requests a list of photos that match the specified criteria.

INSearchForPhotosIntentResponse

Contains your app’s response to a search for photos intent.

INStartPhotoPlaybackIntentHandling

Handles the searching of the user’s photos and the playback of the results.

INStartPhotoPlaybackIntent

Requests a search for photos and the initiation of a slideshow containing the results.

INStartPhotoPlaybackIntentResponse

Contains your app’s response to a start photo playback intent.

INPhotoAttributeOptions

Constants indicating attributes of a photo.

Workouts

INWorkoutsDomainHandling

Provides a convenient way to adopt all of the protocols in the workouts domain.

INStartWorkoutIntentHandling

Handles the starting of a workout.

INStartWorkoutIntent

Starts a workout for the user.

INStartWorkoutIntentResponse

Contains your app’s response to a start workout intent.

INPauseWorkoutIntentHandling

Handles the pausing of a workout.

INPauseWorkoutIntent

Pauses the current workout.

INPauseWorkoutIntentResponse

Contains your app’s response to a pause workout intent.

INResumeWorkoutIntentHandling

Handles the resumption of a workout.

INResumeWorkoutIntent

Resumes a paused workout.

INResumeWorkoutIntentResponse

Contains your app’s response to a resume workout intent.

INCancelWorkoutIntentHandling

Handles the cancellation of a workout.

INCancelWorkoutIntent

Cancels an active workout.

INCancelWorkoutIntentResponse

Contains your app’s response to a cancel workout intent.

INEndWorkoutIntentHandling

Handles the completion of a workout.

INEndWorkoutIntent

Ends the current workout and saves the results.

INEndWorkoutIntentResponse

Contains your app’s response to an end workout intent.

INWorkoutGoalUnitTypeResolutionResult

Describes the result of resolving the units for a workout goal.

INWorkoutLocationTypeResolutionResult

Describes the result of resolving the location type of a workout.

INWorkoutLocationType

Constants describing the location of a workout.

INWorkoutGoalUnitType

Constants describing the unit of measure for a workout.

INWorkoutNameIdentifier

Constants indicating the type of workout.

Ride Booking

INRidesharingDomainHandling

Provides a convenient way to adopt all of the protocols in the ride booking domain.

INListRideOptionsIntentHandling

Fetches the list of rides currently available from your ride booking service.

INListRideOptionsIntent

Requests the types of rides available from a ride booking service.

INListRideOptionsIntentResponse

Contains your app’s response to a list ride options intent.

INRequestRideIntentHandling

Handles the booking of a ride for the user.

INRequestRideIntent

Contains a request to your service to book the specified ride.

INRequestRideIntentResponse

Contains your app’s response to a request ride intent.

INGetRideStatusIntentHandling

Fetches the status of the user’s current ride.

INGetRideStatusIntent

Requests the current status of a previously booked ride.

INGetRideStatusIntentResponse

Contains your app’s response to a get ride status intent.

INGetRideStatusIntentResponseObserver

Defines an interface for providing updated status for an active ride.

INRideOption

Provides details about a type of ride offered by your ride-booking service.

INRideStatus

Provides the status of a ride booked through a ride-booking service

INRideDriver

Provides identifying information about a driver of a ride service.

INRideVehicle

Describes a specific vehicle used by a ride booking service.

INRideFareLineItem

Describes a specific type of ride-related charge.

INRidePartySizeOption

Describes the price of a ride involving the specified number of people.

INRideCompletionStatus

Provides additional details about whether a ride completed successfully or was canceled.

INRidePhase

Constants indicating the current ride status.

Car Commands

INCarCommandsDomainHandling

A protocol that provides a convenient way to adopt all the handling protocols in the car commands domain.

INActivateCarSignalIntentHandling

A protocol that handles requests to activate the car's signals.

INActivateCarSignalIntent

A request to activate the signals on the user's car.

INActivateCarSignalIntentResponse

Your app’s response to a request to activate a car's signals.

INGetCarLockStatusIntentHandling

A protocol that handles requests for the current status of the car's locks.

INGetCarLockStatusIntent

A request to get the lock status of the user's car.

INGetCarLockStatusIntentResponse

Your app's response to a request to get the car's lock status.

INGetCarPowerLevelStatusIntentHandling

A protocol that handles requests for a car's current power level.

INGetCarPowerLevelStatusIntent

A request for the current power level of the user's car.

INGetCarPowerLevelStatusIntentResponse

Your app's response to a request for the car power level.

INSetCarLockStatusIntentHandling

A protocol that handles requests to lock or unlock a car.

INSetCarLockStatusIntent

A request to lock or unlock the user's car.

INSetCarLockStatusIntentResponse

Your app’s response to a request to lock or unlock the car.

INCarSignalOptions

The signals produced by the user's car.

INCarSignalOptionsResolutionResult

An object that describes the result of resolving the signals property for a user's request to activate the signals on the car.

CarPlay

INCarPlayDomainHandling

Provides a convenient way to adopt all of the protocols in the CarPlay domain.

INRadioDomainHandling

Provides a convenient way to adopt all of the protocols in the radio domain.

INSetAudioSourceInCarIntentHandling

Handles the changing of a vehicle’s audio source.

INSetAudioSourceInCarIntent

Changes the source of audio playback in a CarPlay-enabled vehicle.

INSetAudioSourceInCarIntentResponse

Contains your app’s response to a set audio source in car intent.

INSetClimateSettingsInCarIntentHandling

Handles the changing of a vehicle’s climate control settings.

INSetClimateSettingsInCarIntent

Changes the climate settings in a CarPlay-enabled vehicle.

INSetClimateSettingsInCarIntentResponse

Contains your app’s response to a set climate settings in car intent.

INSetDefrosterSettingsInCarIntentHandling

Handles the changing of a vehicle’s defroster settings.

INSetDefrosterSettingsInCarIntent

Changes the defroster settings in a CarPlay-enabled vehicle.

INSetDefrosterSettingsInCarIntentResponse

Contains your app’s response to a set defroster settings in car intent.

INSetSeatSettingsInCarIntentHandling

Handles the changing of a vehicle’s seat-related settings.

INSetSeatSettingsInCarIntent

Changes the seat-related settings in a CarPlay-enabled vehicle.

INSetSeatSettingsInCarIntentResponse

Contains your app’s response to a set seat settings in car intent.

INSaveProfileInCarIntentHandling

Handles the saving of vehicle environment settings to a user-specified profile.

INSaveProfileInCarIntent

Saves the user’s vehicle environment settings in a CarPlay-enabled vehicle.

INSaveProfileInCarIntentResponse

Contains your app’s response to a save profile in car intent.

INSetProfileInCarIntentHandling

Handles the restoration of vehicle environment settings from a user-specified profile.

INSetProfileInCarIntent

Changes the user’s vehicle environment settings to the ones from the specified profile.

INSetProfileInCarIntentResponse

Contains your app’s response to a set profile in car intent.

INSetRadioStationIntentHandling

Handles the changing of a radio station.

INSetRadioStationIntent

Changes the current radio station.

INSetRadioStationIntentResponse

Contains your app’s response to a set radio station intent.

INCarAirCirculationMode

Constants indicating the circulation mode for the climate system.

INCarAudioSource

Constants indicating the source of audio.

INCarDefroster

Constants indicating the defroster type.

INCarSeat

Constants indicating a seat position.

INRadioType

Constants indicating the type of radio.

INRelativeReference

Constants indicating relative positions.

INRelativeSetting

Constants indicating relative settings.

INCarAirCirculationModeResolutionResult

Describes the result of resolving the air circulation mode to use in a car.

INCarAudioSourceResolutionResult

Describes the result of resolving the audio source to use in a car.

INCarDefrosterResolutionResult

Describes the result of resolving which defroster to use in a car.

INCarSeatResolutionResult

Describes the result of resolving which car seat was selected.

INRadioTypeResolutionResult

Describes the result of resolving the type of radio to use in a car.

INTemperatureResolutionResult

Describes the result of resolving a temperature value to the correct units.

Restaurant Reservation

INBookRestaurantReservationIntentHandling

Handles the booking of a reservation that the user selected.

INBookRestaurantReservationIntent

Requests the creation of a reservation at the specified restaurant.

INBookRestaurantReservationIntentResponse

Contains your app’s response to a book restaurant reservation intent.

INGetAvailableRestaurantReservationBookingDefaultsIntentHandling

Provides default values for the system to use when pre-fetching an initial set of possible reservation times.

INGetAvailableRestaurantReservationBookingDefaultsIntent

Requests the default values to use when fetching potential reservation options.

INGetAvailableRestaurantReservationBookingDefaultsIntentResponse

Contains your app’s response to a get available restaurant reservation booking defaults intent.

INGetAvailableRestaurantReservationBookingsIntentHandling

Generates a list of potential reservation times from which the user can select.

INGetAvailableRestaurantReservationBookingsIntent

Requests the time slots available for making a reservation.

INGetAvailableRestaurantReservationBookingsIntentResponse

Contains your app’s response to a get available restaurant reservation bookings intent.

INGetRestaurantGuestIntentHandling

Fetches information about the person making a reservation.

INGetRestaurantGuestIntent

Requests information about the guest who is making reservations.

INGetRestaurantGuestIntentResponse

Contains your app’s response to a get restaurant guest intent.

INGetUserCurrentRestaurantReservationBookingsIntentHandling

Fetches and delivers the user’s current reservations.

INGetUserCurrentRestaurantReservationBookingsIntent

Requests a list of the user’s current reservations.

INGetUserCurrentRestaurantReservationBookingsIntentResponse

Contains your app’s response to a get user current restaurant reservation bookings intent.

INRestaurant

Identifies a restaurant for which your app can make and manage reservations.

INRestaurantGuest

Identifies the person assigned to a reservation.

INRestaurantGuestDisplayPreferences

Contains options about how to display guest information from system interfaces.

INRestaurantOffer

Contains information about special offers made by a restaurant.

INTermsAndConditions

Informs the user about the terms and conditions of service when making restaurant reservations.

INRestaurantReservationBooking

Describes a potential reservation that can be booked by a user.

INRestaurantReservationUserBooking

Describes a reservation that was created by a user.

INRestaurantGuestResolutionResult

Describes the result of resolving the identity of a user involved in booking a reservation at a restaurant.

INRestaurantResolutionResult

Describes the result of resolving the restaurant selected by a user.

Shared Data Types

INDateComponentsRange

Specifies a span of time.

INCurrencyAmount

Represents an amount of money to transfer during a financial transaction.

INConditionalOperator

Constants indicating how search attributes are interpreted.

INImage

Manages image data inside an Intents extension or Intents UI extension.

INPerson

Contains information about a user involved in a SiriKit interaction.

INPersonHandle

Contains identifying information for a user of your app.

INPriceRange

Represents price information as a range of possible values.

INSpeakableString

Represents a custom phrase to be resolved by an Intents extension.

INSpeakable

Provides pronunciation hints for strings used in a spoken interface.

INPersonSuggestionType

Constants indicating how to display the person’s identity.

Intent Class Identifiers

Constants for identifying the type of intent that was specified.

Shared Resolution Results

INBooleanResolutionResult

Describes the result of resolving a Boolean value associated with an intent.

INCurrencyAmountResolutionResult

Describes the result of resolving a currency amount associated with an intent.

INDateComponentsRangeResolutionResult

Describes the result of resolving a range of dates associated with an intent.

INDateComponentsResolutionResult

Describes the result of resolving the date information associated with an intent.

INDoubleResolutionResult

Describes the result of resolving a double value associated with an intent.

INIntegerResolutionResult

Describes the result of resolving an integer value associated with an intent.

INIntentResolutionResult

Describes the result of resolving a parameter of an intent object.

INPersonResolutionResult

Describes the result of resolving user information associated with an intent.

INPlacemarkResolutionResult

Describes the result of resolving placemark information associated with an intent.

INRelativeReferenceResolutionResult

Describes the result of resolving a choice between the next or previous option.

INRelativeSettingResolutionResult

Describes the result of resolving a setting value relative to a known minimum, current, or maximum value.

INSpeakableStringResolutionResult

Describes the result of resolving a speakable string object associated with an intent.

INStringResolutionResult

Describes the result of resolving a string value associated with an intent.

Errors

INIntentError
INIntentError.Code

Constants for error codes returned by the framework.

Error Domain

The intent error domain.

Extended Types

CLPlacemark

A user friendly description of a geographic coordinate, often containing the name of the place, its address, and other relevant information.

INIntentError
NSUserActivity

An NSUserActivity object provides a lightweight way to capture the state of your app and put it to use later. You create user activity objects and use them to capture information about what the user was doing, such as viewing app content, editing a document, viewing a web page, or watching a video. When the system launches your app and an activity object is available, your app can use the information in that object to restore itself to an appropriate state. Spotlight also uses your user activity objects to improve search results for the user.