diff options
author | marinofaggiana <marino@marinofaggiana.com> | 2019-05-22 14:14:14 +0300 |
---|---|---|
committer | marinofaggiana <marino@marinofaggiana.com> | 2019-05-22 14:14:14 +0300 |
commit | 7873fa123059ee80d0954f21b9c8b3a8046bac5d (patch) | |
tree | f5ddd9e1de8b568780eac74752653e33636c845c /Libraries external | |
parent | 2fdc67bb8e7e926792dbbc31370075d5187ea129 (diff) |
test
Diffstat (limited to 'Libraries external')
136 files changed, 38070 insertions, 0 deletions
diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/FirebaseMLCommon b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/FirebaseMLCommon Binary files differnew file mode 100755 index 000000000..033d8b697 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/FirebaseMLCommon diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRLocalModel.h b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRLocalModel.h new file mode 100755 index 000000000..343e52e8f --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRLocalModel.h @@ -0,0 +1,32 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** A model stored locally on the device. */ +NS_SWIFT_NAME(LocalModel) +@interface FIRLocalModel : NSObject + +/** The model name. */ +@property(nonatomic, copy, readonly) NSString *name; + +/** An absolute path to the model file stored locally on the device. */ +@property(nonatomic, copy, readonly) NSString *path; + +/** + * Creates an instance of `LocalModel` with the given name and file path. + * + * @param name The name of the local model. Within the same Firebase app, all local models should + * have distinct names. + * @param path An absolute path to the model file stored locally on the device. + * @return A new `LocalModel` instance. + */ +- (instancetype)initWithName:(NSString *)name + path:(NSString *)path NS_DESIGNATED_INITIALIZER + NS_SWIFT_NAME(init(name:path:)); + +/** Unavailable. */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelDownloadConditions.h b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelDownloadConditions.h new file mode 100755 index 000000000..f2ab5df00 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelDownloadConditions.h @@ -0,0 +1,42 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** Configurations for model downloading conditions. */ +NS_SWIFT_NAME(ModelDownloadConditions) +@interface FIRModelDownloadConditions : NSObject<NSCopying> + +/** + * Indicates whether download requests should be made over a cellular network. The default is `YES`. + */ +@property(nonatomic, readonly) BOOL allowsCellularAccess; + +/** + * Indicates whether the model can be downloaded while the app is in the background. The default is + * `NO`. + */ +@property(nonatomic, readonly) BOOL allowsBackgroundDownloading; + +/** + * Creates an instance of `ModelDownloadConditions` with the given conditions. + * + * @param allowsCellularAccess Whether download requests should be made over a cellular network. + * @param allowsBackgroundDownloading Whether the model can be downloaded while the app is in the + * background. + * @return A new `ModelDownloadConditions` instance. + */ +- (instancetype)initWithAllowsCellularAccess:(BOOL)allowsCellularAccess + allowsBackgroundDownloading:(BOOL)allowsBackgroundDownloading + NS_DESIGNATED_INITIALIZER; + +/** + * Creates an instance of `ModelDownloadConditions` with the default conditions. The default values + * are specified in the documentation for each instance property. + * + * @return A new `ModelDownloadConditions` instance. + */ +- (instancetype)init; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelManager.h b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelManager.h new file mode 100755 index 000000000..582750c2f --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRModelManager.h @@ -0,0 +1,70 @@ +#import <Foundation/Foundation.h> + +@class FIRLocalModel; +@class FIRRemoteModel; + +NS_ASSUME_NONNULL_BEGIN + +/** Manages models that are used by MLKit features. */ +NS_SWIFT_NAME(ModelManager) +@interface FIRModelManager : NSObject + +/** + * Returns the `ModelManager` instance for the default Firebase app. The default Firebase app + * instance must be configured before calling this method; otherwise, raises `FIRAppNotConfigured` + * exception. Models hosted in non-default Firebase apps are currently not supported. The returned + * model manager is thread safe. + * + * @return The `ModelManager` instance for the default Firebase app. + */ ++ (instancetype)modelManager NS_SWIFT_NAME(modelManager()); + +/** Unavailable. Use the `modelManager()` class method. */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Registers a remote model. The model name is unique to each remote model and can only be + * registered once with a given instance of `ModelManager`. The model name should be the same name + * used when the model was uploaded to the Firebase Console. It's OK to separately register a remote + * and local model with the same name for a given instance of `ModelManager`. + * + * @param remoteModel The remote model to register. + * @return Whether the registration was successful. Returns `NO` if the given `remoteModel` is + * invalid or has already been registered. + */ +- (BOOL)registerRemoteModel:(FIRRemoteModel *)remoteModel; + +/** + * Registers a local model. The model name is unique to each local model and can only be registered + * once with a given instance of `ModelManager`. It's OK to separately register a remote and local + * model with the same name for a given instance of `ModelManager`. + * + * @param localModel The local model to register. + * @return Whether the registration was successful. Returns `NO` if the given `localModel` is + * invalid or has already been registered. + */ +- (BOOL)registerLocalModel:(FIRLocalModel *)localModel; + +/** + * Returns the registered remote model with the given name. Returns `nil` if the model was never + * registered with this model manager. + * + * @param name Name of the remote model. + * @return The remote model that was registered with the given name. Returns `nil` if the model was + * never registered with this model manager. + */ +- (nullable FIRRemoteModel *)remoteModelWithName:(NSString *)name; + +/** + * Returns the registered local model with the given name. Returns `nil` if the model was never + * registered with this model manager. + * + * @param name Name of the local model. + * @return The local model that was registered with the given name. Returns `nil` if the model was + * never registered with this model manager. + */ +- (nullable FIRLocalModel *)localModelWithName:(NSString *)name; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRRemoteModel.h b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRRemoteModel.h new file mode 100755 index 000000000..07a007113 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FIRRemoteModel.h @@ -0,0 +1,47 @@ +#import <Foundation/Foundation.h> + +@class FIRModelDownloadConditions; + +NS_ASSUME_NONNULL_BEGIN + +/** A model that is stored remotely on the server and downloaded to the device. */ +NS_SWIFT_NAME(RemoteModel) +@interface FIRRemoteModel : NSObject + +/** The model name. */ +@property(nonatomic, copy, readonly) NSString *name; + +/** Indicates whether model updates are allowed. */ +@property(nonatomic, readonly) BOOL allowsModelUpdates; + +/** Initial downloading conditions for the model. */ +@property(nonatomic, readonly) FIRModelDownloadConditions *initialConditions; + +/** Downloading conditions for subsequent calls to update the model. */ +@property(nonatomic, readonly) FIRModelDownloadConditions *updateConditions; + +/** + * Creates an instance of `RemoteModel` with the given name and download conditions. + * + * @param name The name of the remote model. Specify the name assigned to the model when it was + * uploaded to the Firebase Console. Within the same Firebase app, all remote models should have + * distinct names. + * @param allowsModelUpdates Indicates whether model updates are allowed. + * @param initialConditions Initial downloading conditions for the model. + * @param updateConditions Downloading conditions for subsequent calls to update the model. If `nil` + * is passed and `allowsModelUpdates` is `YES`, the default download conditions are used via the + * `ModelDownloadConditions` `init` call. + * @return A new `RemoteModel` instance. + */ +- (instancetype)initWithName:(NSString *)name + allowsModelUpdates:(BOOL)allowsModelUpdates + initialConditions:(FIRModelDownloadConditions *)initialConditions + updateConditions:(nullable FIRModelDownloadConditions *)updateConditions + NS_SWIFT_NAME(init(name:allowsModelUpdates:initialConditions:updateConditions:)); + +/** Unavailable. */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FirebaseMLCommon.h b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FirebaseMLCommon.h new file mode 100755 index 000000000..015f293a6 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Headers/FirebaseMLCommon.h @@ -0,0 +1,4 @@ +#import "FIRLocalModel.h" +#import "FIRModelDownloadConditions.h" +#import "FIRModelManager.h" +#import "FIRRemoteModel.h" diff --git a/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Modules/module.modulemap new file mode 100755 index 000000000..9f86669fb --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLCommon.framework/Modules/module.modulemap @@ -0,0 +1,14 @@ +framework module FirebaseMLCommon { + umbrella header "FirebaseMLCommon.h" + export * + module * { export * } + link "sqlite3" + link "z" + link framework "CoreGraphics" + link framework "Foundation" + link framework "LocalAuthentication" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/FirebaseMLVision b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/FirebaseMLVision Binary files differnew file mode 100755 index 000000000..982e8b166 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/FirebaseMLVision diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVision.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVision.h new file mode 100755 index 000000000..79874227b --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVision.h @@ -0,0 +1,191 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRApp; +@class FIRVisionBarcodeDetector; +@class FIRVisionBarcodeDetectorOptions; +@class FIRVisionCloudDetectorOptions; +@class FIRVisionCloudDocumentTextRecognizerOptions; +@class FIRVisionCloudImageLabelerOptions; +@class FIRVisionCloudLandmarkDetector; +@class FIRVisionCloudTextRecognizerOptions; +@class FIRVisionDocumentTextRecognizer; +@class FIRVisionFaceDetector; +@class FIRVisionFaceDetectorOptions; +@class FIRVisionImageLabeler; +@class FIRVisionOnDeviceImageLabelerOptions; +@class FIRVisionTextRecognizer; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A Firebase service that supports vision APIs. + */ +NS_SWIFT_NAME(Vision) +@interface FIRVision : NSObject + +/** + * Enables stats collection in ML Kit vision. The stats include API call counts, errors, API call + * durations, options, etc. No personally identifiable information is logged. + * + * <p>The setting is per `FirebaseApp`, and therefore per `Vision`, and it is persistent across + * launches of the app. It means if the user uninstalls the app or clears all app data, the setting + * will be erased. The best practice is to set the flag in each initialization. + * + * <p>By default the logging is enabled. You have to specifically set it to false to disable + * logging. + */ +@property(nonatomic, getter=isStatsCollectionEnabled) BOOL statsCollectionEnabled; + +/** + * Gets an instance of Firebase Vision service for the default Firebase app. This method is thread + * safe. The default Firebase app instance must be configured before calling this method; otherwise, + * raises FIRAppNotConfigured exception. + * + * @return A Firebase Vision service instance, initialized with the default Firebase app. + */ ++ (instancetype)vision NS_SWIFT_NAME(vision()); + +/** + * Gets an instance of Firebase Vision service for the custom Firebase app. This method is thread + * safe. + * + * @param app The custom Firebase app used for initialization. Raises FIRAppInvalid exception if + * `app` is nil. + * @return A Firebase Vision service instance, initialized with the custom Firebase app. + */ ++ (instancetype)visionForApp:(FIRApp *)app NS_SWIFT_NAME(vision(app:)); + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Gets a barcode detector with the given options. The returned detector is not thread safe. + * + * @param options Options containing barcode detector configuration. + * @return A barcode detector configured with the given options. + */ +- (FIRVisionBarcodeDetector *)barcodeDetectorWithOptions:(FIRVisionBarcodeDetectorOptions *)options + NS_SWIFT_NAME(barcodeDetector(options:)); + +/** + * Gets a barcode detector with the default options. The returned detector is not thread safe. + * + * @return A barcode detector configured with the default options. + */ +- (FIRVisionBarcodeDetector *)barcodeDetector; + +/** + * Gets a face detector with the given options. The returned detector is not thread safe. + * + * @param options Options for configuring the face detector. + * @return A face detector configured with the given options. + */ +- (FIRVisionFaceDetector *)faceDetectorWithOptions:(FIRVisionFaceDetectorOptions *)options + NS_SWIFT_NAME(faceDetector(options:)); + +/** + * Gets a face detector with the default options. The returned detector is not thread safe. + * + * @return A face detector configured with the default options. + */ +- (FIRVisionFaceDetector *)faceDetector; + +/** + * Gets an on-device image labeler with the given options. The returned image labeler is not thread + * safe. + * + * @param options Options for configuring the image labeler. + * @return An on-device image labeler configured with the given options. + */ +- (FIRVisionImageLabeler *)onDeviceImageLabelerWithOptions: + (FIRVisionOnDeviceImageLabelerOptions *)options NS_SWIFT_NAME(onDeviceImageLabeler(options:)); + +/** + * Gets an on-device image labeler with the default options. The returned image labeler is not + * thread safe. + * + * @return An on-device image labeler configured with the default options. + */ +- (FIRVisionImageLabeler *)onDeviceImageLabeler; + +/** + * Gets an on-device text recognizer. The returned recognizer is not thread safe. + * + * @return A text recognizer. + */ +- (FIRVisionTextRecognizer *)onDeviceTextRecognizer; + +/** + * Gets a cloud text recognizer configured with the given options. The returned recognizer is not + * thread safe. + * + * @param options Options for configuring the cloud text recognizer. + * @return A text recognizer configured with the given options. + */ +- (FIRVisionTextRecognizer *)cloudTextRecognizerWithOptions: + (FIRVisionCloudTextRecognizerOptions *)options NS_SWIFT_NAME(cloudTextRecognizer(options:)); + +/** + * Gets a cloud text recognizer. The returned recognizer is not thread safe. + * + * @return A text recognizer. + */ +- (FIRVisionTextRecognizer *)cloudTextRecognizer; + +/** + * Gets a cloud document text recognizer configured with the given options. The returned recognizer + * is not thread safe. + * + * @param options Options for configuring the cloud document text recognizer. + * @return A document text recognizer configured with the given options. + */ +- (FIRVisionDocumentTextRecognizer *)cloudDocumentTextRecognizerWithOptions: + (FIRVisionCloudDocumentTextRecognizerOptions *)options + NS_SWIFT_NAME(cloudDocumentTextRecognizer(options:)); + +/** + * Gets a cloud document text recognizer. The returned recognizer is not thread safe. + * + * @return A document text recognizer. + */ +- (FIRVisionDocumentTextRecognizer *)cloudDocumentTextRecognizer; + +/** + * Gets an instance of cloud landmark detector with the given options. + * + * @param options Options for configuring the cloud landmark detector. + * @return A cloud landmark detector configured with the given options. + */ +- (FIRVisionCloudLandmarkDetector *)cloudLandmarkDetectorWithOptions: + (FIRVisionCloudDetectorOptions *)options + NS_SWIFT_NAME(cloudLandmarkDetector(options:)); + +/** + * Gets an instance of cloud landmark detector with default options. + * + * @return A cloud landmark detector configured with default options. + */ +- (FIRVisionCloudLandmarkDetector *)cloudLandmarkDetector; + +/* + * Gets an instance of cloud image labeler with the given options. + * + * @param options Options for configuring the cloud image labeler. + * @return A cloud image labeler configured with the given options. + */ +- (FIRVisionImageLabeler *)cloudImageLabelerWithOptions:(FIRVisionCloudImageLabelerOptions *)options + NS_SWIFT_NAME(cloudImageLabeler(options:)); + +/** + * Gets an instance of cloud image labeler with default options. + * + * @return A cloud image labeler configured with default options. + */ +- (FIRVisionImageLabeler *)cloudImageLabeler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcode.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcode.h new file mode 100755 index 000000000..0bb9e2f89 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcode.h @@ -0,0 +1,676 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +#import "FIRVisionBarcodeDetectorOptions.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionBarcodeValueType + * Barcode's value format. For example, TEXT, PRODUCT, URL, etc. + */ +typedef NS_ENUM(NSInteger, FIRVisionBarcodeValueType) { + /** + * Unknown Barcode value types. + */ + FIRVisionBarcodeValueTypeUnknown, + /** + * Barcode value type for contact info. + */ + FIRVisionBarcodeValueTypeContactInfo, + /** + * Barcode value type for email addresses. + */ + FIRVisionBarcodeValueTypeEmail, + /** + * Barcode value type for ISBNs. + */ + FIRVisionBarcodeValueTypeISBN, + /** + * Barcode value type for phone numbers. + */ + FIRVisionBarcodeValueTypePhone, + /** + * Barcode value type for product codes. + */ + FIRVisionBarcodeValueTypeProduct, + /** + * Barcode value type for SMS details. + */ + FIRVisionBarcodeValueTypeSMS, + /** + * Barcode value type for plain text. + */ + FIRVisionBarcodeValueTypeText, + /** + * Barcode value type for URLs/bookmarks. + */ + FIRVisionBarcodeValueTypeURL, + /** + * Barcode value type for Wi-Fi access point details. + */ + FIRVisionBarcodeValueTypeWiFi, + /** + * Barcode value type for geographic coordinates. + */ + FIRVisionBarcodeValueTypeGeographicCoordinates, + /** + * Barcode value type for calendar events. + */ + FIRVisionBarcodeValueTypeCalendarEvent, + /** + * Barcode value type for driver's license data. + */ + FIRVisionBarcodeValueTypeDriversLicense, +} NS_SWIFT_NAME(VisionBarcodeValueType); + +/** + * @enum VisionBarcodeAddressType + * Address type. + */ +typedef NS_ENUM(NSInteger, FIRVisionBarcodeAddressType) { + /** + * Barcode unknown address type. + */ + FIRVisionBarcodeAddressTypeUnknown, + /** + * Barcode work address type. + */ + FIRVisionBarcodeAddressTypeWork, + /** + * Barcode home address type. + */ + FIRVisionBarcodeAddressTypeHome, +} NS_SWIFT_NAME(VisionBarcodeAddressType); + +/** + * @enum VisionBarcodeEmailType + * Email type for VisionBarcodeEmail. + */ +typedef NS_ENUM(NSInteger, FIRVisionBarcodeEmailType) { + /** + * Unknown email type. + */ + FIRVisionBarcodeEmailTypeUnknown, + /** + * Barcode work email type. + */ + FIRVisionBarcodeEmailTypeWork, + /** + * Barcode home email type. + */ + FIRVisionBarcodeEmailTypeHome, +} NS_SWIFT_NAME(VisionBarcodeEmailType); + +/** + * @enum VisionBarcodePhoneType + * Phone type for VisionBarcodePhone. + */ +typedef NS_ENUM(NSInteger, FIRVisionBarcodePhoneType) { + /** + * Unknown phone type. + */ + FIRVisionBarcodePhoneTypeUnknown, + /** + * Barcode work phone type. + */ + FIRVisionBarcodePhoneTypeWork, + /** + * Barcode home phone type. + */ + FIRVisionBarcodePhoneTypeHome, + /** + * Barcode fax phone type. + */ + FIRVisionBarcodePhoneTypeFax, + /** + * Barcode mobile phone type. + */ + FIRVisionBarcodePhoneTypeMobile, +} NS_SWIFT_NAME(VisionBarcodePhoneType); + +/** + * @enum VisionBarcodeWiFiEncryptionType + * Wi-Fi encryption type for VisionBarcodeWiFi. + */ +typedef NS_ENUM(NSInteger, FIRVisionBarcodeWiFiEncryptionType) { + /** + * Barcode unknown Wi-Fi encryption type. + */ + FIRVisionBarcodeWiFiEncryptionTypeUnknown, + /** + * Barcode open Wi-Fi encryption type. + */ + FIRVisionBarcodeWiFiEncryptionTypeOpen, + /** + * Barcode WPA Wi-Fi encryption type. + */ + FIRVisionBarcodeWiFiEncryptionTypeWPA, + /** + * Barcode WEP Wi-Fi encryption type. + */ + FIRVisionBarcodeWiFiEncryptionTypeWEP, +} NS_SWIFT_NAME(VisionBarcodeWiFiEncryptionType); + +/** + * An address. + */ +NS_SWIFT_NAME(VisionBarcodeAddress) +@interface FIRVisionBarcodeAddress : NSObject + +/** + * Formatted address, containing multiple lines when appropriate. + * + * The parsing of address formats is quite limited. Typically all address information will appear + * on the first address line. To handle addresses better, it is recommended to parse the raw data. + * The raw data is available in `FIRVisionBarcode`'s `rawValue` property. + */ +@property(nonatomic, readonly, nullable) NSArray<NSString *> *addressLines; + +/** + * Address type. + */ +@property(nonatomic, readonly) FIRVisionBarcodeAddressType type; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A calendar event extracted from a QR code. + */ +NS_SWIFT_NAME(VisionBarcodeCalendarEvent) +@interface FIRVisionBarcodeCalendarEvent : NSObject + +/** + * Calendar event description. + */ +@property(nonatomic, readonly, nullable) NSString *eventDescription; + +/** + * Calendar event location. + */ +@property(nonatomic, readonly, nullable) NSString *location; + +/** + * Clendar event organizer. + */ +@property(nonatomic, readonly, nullable) NSString *organizer; + +/** + * Calendar event status. + */ +@property(nonatomic, readonly, nullable) NSString *status; + +/** + * Calendar event summary. + */ +@property(nonatomic, readonly, nullable) NSString *summary; + +/** + * Calendar event start date. + */ +@property(nonatomic, readonly, nullable) NSDate *start; + +/** + * Calendar event end date. + */ +@property(nonatomic, readonly, nullable) NSDate *end; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A driver license or ID card data representation. + * + * An ANSI driver license contains more fields than are represented by this class. The + * `FIRVisionBarcode`s `rawValue` property can be used to access the other fields. + */ +NS_SWIFT_NAME(VisionBarcodeDriverLicense) +@interface FIRVisionBarcodeDriverLicense : NSObject + +/** + * Holder's first name. + */ +@property(nonatomic, readonly, nullable) NSString *firstName; + +/** + * Holder's middle name. + */ +@property(nonatomic, readonly, nullable) NSString *middleName; + +/** + * Holder's last name. + */ +@property(nonatomic, readonly, nullable) NSString *lastName; + +/** + * Holder's gender. 1 is male and 2 is female. + */ +@property(nonatomic, readonly, nullable) NSString *gender; + +/** + * Holder's city address. + */ +@property(nonatomic, readonly, nullable) NSString *addressCity; + +/** + * Holder's state address. + */ +@property(nonatomic, readonly, nullable) NSString *addressState; + +/** + * Holder's street address. + */ +@property(nonatomic, readonly, nullable) NSString *addressStreet; + +/** + * Holder's address' zipcode. + */ +@property(nonatomic, readonly, nullable) NSString *addressZip; + +/** + * Holder's birthday. The date format depends on the issuing country. + */ +@property(nonatomic, readonly, nullable) NSString *birthDate; + +/** + * "DL" for driver licenses, "ID" for ID cards. + */ +@property(nonatomic, readonly, nullable) NSString *documentType; + +/** + * Driver license ID number. + */ +@property(nonatomic, readonly, nullable) NSString *licenseNumber; + +/** + * Driver license expiration date. The date format depends on the issuing country. + */ +@property(nonatomic, readonly, nullable) NSString *expiryDate; + +/** + * The date format depends on the issuing country. + */ +@property(nonatomic, readonly, nullable) NSString *issuingDate; + +/** + * A country in which DL/ID was issued. + */ +@property(nonatomic, readonly, nullable) NSString *issuingCountry; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * An email message from a 'MAILTO:' or similar QR Code type. + */ +NS_SWIFT_NAME(VisionBarcodeEmail) +@interface FIRVisionBarcodeEmail : NSObject + +/** + * Email message address. + */ +@property(nonatomic, readonly, nullable) NSString *address; + +/** + * Email message body. + */ +@property(nonatomic, readonly, nullable) NSString *body; + +/** + * Email message subject. + */ +@property(nonatomic, readonly, nullable) NSString *subject; + +/** + * Email message type. + */ +@property(nonatomic, readonly) FIRVisionBarcodeEmailType type; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * GPS coordinates from a 'GEO:' or similar QR Code type data. + */ +NS_SWIFT_NAME(VisionBarcodeGeoPoint) +@interface FIRVisionBarcodeGeoPoint : NSObject +/** + * A location latitude. + */ +@property(nonatomic, readonly) double latitude; + +/** + * A location longitude. + */ +@property(nonatomic, readonly) double longitude; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A person's name, both formatted and as individual name components. + */ +NS_SWIFT_NAME(VisionBarcodePersonName) +@interface FIRVisionBarcodePersonName : NSObject + +/** + * Properly formatted name. + */ +@property(nonatomic, readonly, nullable) NSString *formattedName; + +/** + * First name. + */ +@property(nonatomic, readonly, nullable) NSString *first; + +/** + * Last name. + */ +@property(nonatomic, readonly, nullable) NSString *last; + +/** + * Middle name. + */ +@property(nonatomic, readonly, nullable) NSString *middle; + +/** + * Name prefix. + */ +@property(nonatomic, readonly, nullable) NSString *prefix; + +/** + * Designates a text string to be set as the kana name in the phonebook. + * Used for Japanese contacts. + */ +@property(nonatomic, readonly, nullable) NSString *pronounciation; + +/** + * Name suffix. + */ +@property(nonatomic, readonly, nullable) NSString *suffix; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A phone number from a 'TEL:' or similar QR Code type. + */ +NS_SWIFT_NAME(VisionBarcodePhone) +@interface FIRVisionBarcodePhone : NSObject + +/** + * Phone number. + */ +@property(nonatomic, readonly, nullable) NSString *number; + +/** + * Phone number type. + */ +@property(nonatomic, readonly) FIRVisionBarcodePhoneType type; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * An SMS message from an 'SMS:' or similar QR Code type. + */ +NS_SWIFT_NAME(VisionBarcodeSMS) +@interface FIRVisionBarcodeSMS : NSObject + +/** + * An SMS message body. + */ +@property(nonatomic, readonly, nullable) NSString *message; + +/** + * An SMS message phone number. + */ +@property(nonatomic, readonly, nullable) NSString *phoneNumber; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A URL and title from a 'MEBKM:' or similar QR Code type. + */ +NS_SWIFT_NAME(VisionBarcodeURLBookmark) +@interface FIRVisionBarcodeURLBookmark : NSObject + +/** + * A URL bookmark title. + */ +@property(nonatomic, readonly, nullable) NSString *title; + +/** + * A URL bookmark url. + */ +@property(nonatomic, readonly, nullable) NSString *url; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * Wi-Fi network parameters from a 'WIFI:' or similar QR Code type. + */ +NS_SWIFT_NAME(VisionBarcodeWifi) +@interface FIRVisionBarcodeWiFi : NSObject + +/** + * A Wi-Fi access point SSID. + */ +@property(nonatomic, readonly, nullable) NSString *ssid; + +/** + * A Wi-Fi access point password. + */ +@property(nonatomic, readonly, nullable) NSString *password; + +/** + * A Wi-Fi access point encryption type. + */ +@property(nonatomic, readonly) FIRVisionBarcodeWiFiEncryptionType type; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A person's or organization's business card. This may come from different underlying formats + * including VCARD and MECARD. + * + * This object represents a simplified view of possible business cards. If you require lossless + * access to the information in the barcode, you should parse the raw data yourself. To access the + * raw data, use the `FIRVisionBarcode`s `rawValue` property. + */ +NS_SWIFT_NAME(VisionBarcodeContactInfo) +@interface FIRVisionBarcodeContactInfo : NSObject + +/** + * Person's or organization's addresses. + */ +@property(nonatomic, readonly, nullable) NSArray<FIRVisionBarcodeAddress *> *addresses; + +/** + * Contact emails. + */ +@property(nonatomic, readonly, nullable) NSArray<FIRVisionBarcodeEmail *> *emails; + +/** + * A person's name. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodePersonName *name; + +/** + * Contact phone numbers. + */ +@property(nonatomic, readonly, nullable) NSArray<FIRVisionBarcodePhone *> *phones; + +/** + * Contact URLs. + */ +@property(nonatomic, readonly, nullable) NSArray<NSString *> *urls; + +/** + * A job title. + */ +@property(nonatomic, readonly, nullable) NSString *jobTitle; + +/** + * A business organization. + */ +@property(nonatomic, readonly, nullable) NSString *organization; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * A barcode in an image. + */ +NS_SWIFT_NAME(VisionBarcode) +@interface FIRVisionBarcode : NSObject + +/** + * The rectangle that holds the discovered relative to the detected image in the view + * coordinate system. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * A barcode value as it was encoded in the barcode. Structured values are not parsed, for example: + * 'MEBKM:TITLE:Google;URL:https://www.google.com;;'. Does not include the supplemental value. + */ +@property(nonatomic, readonly, nullable) NSString *rawValue; + +/** + * A barcode value in a user-friendly format. May omit some of the information encoded in the + * barcode. For example, in the case above the display value might be 'https://www.google.com'. + * If valueType == .text, this field will be equal to rawValue. This value may be multiline, + * for example, when line breaks are encoded into the original TEXT barcode value. May include + * the supplement value. + */ +@property(nonatomic, readonly, nullable) NSString *displayValue; + +/** + * A barcode format; for example, EAN_13. Note that if the format is not in the list, + * VisionBarcodeFormat.unknown would be returned. + */ +@property(nonatomic, readonly) FIRVisionBarcodeFormat format; + +/** + * The four corner points of the barcode, in clockwise order starting with the top left relative + * to the detected image in the view coordinate system. These are CGPoints boxed in NSValues. + * Due to the possible perspective distortions, this is not necessarily a rectangle. + */ +@property(nonatomic, readonly, nullable) NSArray<NSValue *> *cornerPoints; + +/** + * A type of the barcode value. For example, TEXT, PRODUCT, URL, etc. Note that if the type is not + * in the list, .unknown would be returned. + */ +@property(nonatomic, readonly) FIRVisionBarcodeValueType valueType; + +/** + * An email message from a 'MAILTO:' or similar QR Code type. This property is only set if + * valueType is .email. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeEmail *email; + +/** + * A phone number from a 'TEL:' or similar QR Code type. This property is only set if valueType + * is .phone. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodePhone *phone; + +/** + * An SMS message from an 'SMS:' or similar QR Code type. This property is only set if valueType + * is .sms. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeSMS *sms; + +/** + * A URL and title from a 'MEBKM:' or similar QR Code type. This property is only set if + * valueType is .url. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeURLBookmark *URL; + +/** + * Wi-Fi network parameters from a 'WIFI:' or similar QR Code type. This property is only set + * if valueType is .wifi. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeWiFi *wifi; + +/** + * GPS coordinates from a 'GEO:' or similar QR Code type. This property is only set if valueType + * is .geo. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeGeoPoint *geoPoint; + +/** + * A person's or organization's business card. For example a VCARD. This property is only set + * if valueType is .contactInfo. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeContactInfo *contactInfo; + +/** + * A calendar event extracted from a QR Code. This property is only set if valueType is + * .calendarEvent. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeCalendarEvent *calendarEvent; + +/** + * A driver license or ID card. This property is only set if valueType is .driverLicense. + */ +@property(nonatomic, readonly, nullable) FIRVisionBarcodeDriverLicense *driverLicense; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetector.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetector.h new file mode 100755 index 000000000..5a951c0f0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetector.h @@ -0,0 +1,40 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionBarcode; +@class FIRVisionImage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A block containing an array of barcodes or `nil` if there's an error. + * + * @param barcodes Array of barcodes detected in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionBarcodeDetectionCallback)(NSArray<FIRVisionBarcode *> *_Nullable barcodes, + NSError *_Nullable error) + NS_SWIFT_NAME(VisionBarcodeDetectionCallback); + +/** + * A barcode detector that detects barcodes in an image. + */ +NS_SWIFT_NAME(VisionBarcodeDetector) +@interface FIRVisionBarcodeDetector : NSObject + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Detects barcodes in the given image. + * + * @param image The image to use for detecting barcodes. + * @param completion Handler to call back on the main queue with barcodes detected or error. + */ +- (void)detectInImage:(FIRVisionImage *)image + completion:(FIRVisionBarcodeDetectionCallback)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetectorOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetectorOptions.h new file mode 100755 index 000000000..9c10e8a49 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionBarcodeDetectorOptions.h @@ -0,0 +1,101 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @options VisionBarcodeFormat + * This option specifies the barcode formats that the library should detect. + */ +typedef NS_OPTIONS(NSInteger, FIRVisionBarcodeFormat) { + /** + * Unknown format. + */ + FIRVisionBarcodeFormatUnKnown = 0, + /** + * All format. + */ + FIRVisionBarcodeFormatAll = 0xFFFF, + /** + * Code-128 detection. + */ + FIRVisionBarcodeFormatCode128 = 0x0001, + /** + * Code-39 detection. + */ + FIRVisionBarcodeFormatCode39 = 0x0002, + /** + * Code-93 detection. + */ + FIRVisionBarcodeFormatCode93 = 0x0004, + /** + * Codabar detection. + */ + FIRVisionBarcodeFormatCodaBar = 0x0008, + /** + * Data Matrix detection. + */ + FIRVisionBarcodeFormatDataMatrix = 0x0010, + /** + * EAN-13 detection. + */ + FIRVisionBarcodeFormatEAN13 = 0x0020, + /** + * EAN-8 detection. + */ + FIRVisionBarcodeFormatEAN8 = 0x0040, + /** + * ITF detection. + */ + FIRVisionBarcodeFormatITF = 0x0080, + /** + * QR Code detection. + */ + FIRVisionBarcodeFormatQRCode = 0x0100, + /** + * UPC-A detection. + */ + FIRVisionBarcodeFormatUPCA = 0x0200, + /** + * UPC-E detection. + */ + FIRVisionBarcodeFormatUPCE = 0x0400, + /** + * PDF-417 detection. + */ + FIRVisionBarcodeFormatPDF417 = 0x0800, + /** + * Aztec code detection. + */ + FIRVisionBarcodeFormatAztec = 0x1000, +} NS_SWIFT_NAME(VisionBarcodeFormat); + +/** + * Options for specifying a Barcode detector. + */ +NS_SWIFT_NAME(VisionBarcodeDetectorOptions) +@interface FIRVisionBarcodeDetectorOptions : NSObject + +/** + * The barcode formats detected in an image. Note that the detection time will increase for each + * additional format that is specified. + */ +@property(nonatomic, readonly) FIRVisionBarcodeFormat formats; + +/** + * Initializes an instance that detects all supported barcode formats. + * + * @return A new instance of Firebase barcode detector options. + */ +- (instancetype)init; + +/** + * Initializes an instance with the given barcode formats to look for. + * + * @param formats The barcode formats to initialize the barcode detector options. + * @return A new instance of Firebase barcode detector options. + */ +- (instancetype)initWithFormats:(FIRVisionBarcodeFormat)formats NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDetectorOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDetectorOptions.h new file mode 100755 index 000000000..ed0e156b7 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDetectorOptions.h @@ -0,0 +1,41 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionCloudModelType + * Type of model to use in vision cloud detection API. + */ +typedef NS_ENUM(NSUInteger, FIRVisionCloudModelType) { + /** Stable model. */ + FIRVisionCloudModelTypeStable, + /** Latest model. */ + FIRVisionCloudModelTypeLatest, +} NS_SWIFT_NAME(VisionCloudModelType); + +/** + * Generic options of a vision cloud detector. + */ +NS_SWIFT_NAME(VisionCloudDetectorOptions) +@interface FIRVisionCloudDetectorOptions : NSObject + +/** + * Type of model to use in vision cloud detection API. Defaults to `.stable`. + */ +@property(nonatomic) FIRVisionCloudModelType modelType; + +/** + * Maximum number of results to return. Defaults to 10. Does not apply to + * `VisionCloudTextDetector` and `VisionCloudDocumentTextDetector`. + */ +@property(nonatomic) NSUInteger maxResults; + +/** + * API key to use for Cloud Vision API. If `nil`, the default API key from FirebaseApp will be + * used. + */ +@property(nonatomic, copy, nullable) NSString *APIKeyOverride; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDocumentTextRecognizerOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDocumentTextRecognizerOptions.h new file mode 100755 index 000000000..7706b590f --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudDocumentTextRecognizerOptions.h @@ -0,0 +1,29 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * Options for a cloud document text recognizer. + */ +NS_SWIFT_NAME(VisionCloudDocumentTextRecognizerOptions) +@interface FIRVisionCloudDocumentTextRecognizerOptions : NSObject + +/** + * An array of hinted language codes for cloud document text recognition. The default is `nil`. See + * https://cloud.google.com/vision/docs/languages for supported language codes. + */ +@property(nonatomic, copy, nullable) NSArray<NSString *> *languageHints; + +/** + * API key to use for Cloud Vision API. If `nil`, the default API key from FirebaseApp will be used. + */ +@property(nonatomic, copy, nullable) NSString *APIKeyOverride; + +/** + * Designated initializer that creates a new instance of cloud document text recognizer options. + */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudImageLabelerOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudImageLabelerOptions.h new file mode 100755 index 000000000..5c2f84476 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudImageLabelerOptions.h @@ -0,0 +1,30 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** Options for a cloud image labeler. */ +NS_SWIFT_NAME(VisionCloudImageLabelerOptions) +@interface FIRVisionCloudImageLabelerOptions : NSObject + +/** + * The confidence threshold for labels returned by the image labeler. Labels returned by the image + * labeler will have a confidence level higher or equal to the given threshold. Values must be in + * range [0, 1]. If unset or an invalid value is set, the default threshold of 0.5 is used. Up to 20 + * labels with the top confidence will be returned. + */ +@property(nonatomic) float confidenceThreshold; + +/** + * API key to use for Cloud Vision API. If `nil`, the default API key from FirebaseApp will be used. + */ +@property(nonatomic, copy, nullable) NSString *APIKeyOverride; + +/** + * Designated initializer that creates a new instance of cloud image labeler options with the + * default values. + */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmark.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmark.h new file mode 100755 index 000000000..0f8643803 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmark.h @@ -0,0 +1,49 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionLatitudeLongitude; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Set of landmark properties identified by a vision cloud detector. + */ +NS_SWIFT_NAME(VisionCloudLandmark) +@interface FIRVisionCloudLandmark : NSObject + +/** + * Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API] + * (https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, readonly, nullable) NSString *entityId; + +/** + * Textual description of the landmark. + */ +@property(nonatomic, copy, readonly, nullable) NSString *landmark; + +/** + * Overall confidence of the result. The value is float, in range [0, 1]. + */ +@property(nonatomic, readonly, nullable) NSNumber *confidence; + +/** + * A rectangle image region to which this landmark belongs to (in the view coordinate system). + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * The location information for the detected landmark. Multiple LocationInfo elements can be present + * because one location may indicate the location of the scene in the image, and another location + * may indicate the location of the place where the image was taken. + */ +@property(nonatomic, readonly, nullable) NSArray<FIRVisionLatitudeLongitude *> *locations; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmarkDetector.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmarkDetector.h new file mode 100755 index 000000000..de5485ccf --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudLandmarkDetector.h @@ -0,0 +1,40 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionCloudLandmark; +@class FIRVisionImage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A block containing an array of landmark or `nil` if there's an error. + * + * @param landmarks Array of landmark detected in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionCloudLandmarkDetectionCompletion)( + NSArray<FIRVisionCloudLandmark *> *_Nullable landmarks, NSError *_Nullable error) + NS_SWIFT_NAME(VisionCloudLandmarkDetectionCompletion); + +/** + * A landmark detector that detects landmark in an image. + */ +NS_SWIFT_NAME(VisionCloudLandmarkDetector) +@interface FIRVisionCloudLandmarkDetector : NSObject + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Detects landmark in a given image. + * + * @param image The image to use for detecting landmark. + * @param completion Handler to call back on the main queue with landmark detected or error. + */ +- (void)detectInImage:(FIRVisionImage *)image + completion:(FIRVisionCloudLandmarkDetectionCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudTextRecognizerOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudTextRecognizerOptions.h new file mode 100755 index 000000000..482e08349 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionCloudTextRecognizerOptions.h @@ -0,0 +1,49 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionCloudTextModelType + * An enum of model types for cloud text recognition. + */ +typedef NS_ENUM(NSUInteger, FIRVisionCloudTextModelType) { + /** + * Sparse or regular text cloud model type. + */ + FIRVisionCloudTextModelTypeSparse, + /** + * Dense or document text cloud model type. + */ + FIRVisionCloudTextModelTypeDense, +} NS_SWIFT_NAME(VisionCloudTextModelType); + +/** + * Options for a cloud text recognizer. + */ +NS_SWIFT_NAME(VisionCloudTextRecognizerOptions) +@interface FIRVisionCloudTextRecognizerOptions : NSObject + +/** + * Model type for cloud text recognition. The default is `VisionCloudTextModelType.sparse`. + */ +@property(nonatomic) FIRVisionCloudTextModelType modelType; + +/** + * An array of hinted language codes for cloud text recognition. The default is `nil`. See + * https://cloud.google.com/vision/docs/languages for supported language codes. + */ +@property(nonatomic, copy, nullable) NSArray<NSString *> *languageHints; + +/** + * API key to use for Cloud Vision API. If `nil`, the default API key from FirebaseApp will be used. + */ +@property(nonatomic, copy, nullable) NSString *APIKeyOverride; + +/** + * Designated initializer that creates a new instance of cloud text recognizer options. + */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentText.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentText.h new file mode 100755 index 000000000..fc0bd3bed --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentText.h @@ -0,0 +1,30 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionDocumentTextBlock; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Recognized document text in an image. + */ +NS_SWIFT_NAME(VisionDocumentText) +@interface FIRVisionDocumentText : NSObject + +/** + * String representation of the recognized document text. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of blocks recognized in the document text. + */ +@property(nonatomic, readonly) NSArray<FIRVisionDocumentTextBlock *> *blocks; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextBlock.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextBlock.h new file mode 100755 index 000000000..bb4068e4f --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextBlock.h @@ -0,0 +1,92 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionDocumentTextParagraph; +@class FIRVisionTextRecognizedBreak; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionDocumentTextBlockType + * An enum of document text block types. + */ +typedef NS_ENUM(NSInteger, FIRVisionDocumentTextBlockType) { + /** + * Unknown document text block type. + */ + FIRVisionDocumentTextBlockTypeUnknown, + /** + * Barcode document text block type. + */ + FIRVisionDocumentTextBlockTypeBarcode, + /** + * Image document text block type. + */ + FIRVisionDocumentTextBlockTypePicture, + /** + * Horizontal/vertical line box document text block type. + */ + FIRVisionDocumentTextBlockTypeRuler, + /** + * Table document text block type. + */ + FIRVisionDocumentTextBlockTypeTable, + /** + * Regular document text block type. + */ + FIRVisionDocumentTextBlockTypeText, +} NS_SWIFT_NAME(VisionDocumentTextBlockType); + +/** + * A document text block recognized in an image that consists of an array of paragraphs. + */ +NS_SWIFT_NAME(VisionDocumentTextBlock) +@interface FIRVisionDocumentTextBlock : NSObject + +/** + * The detected block type. + */ +@property(nonatomic, readonly) FIRVisionDocumentTextBlockType type; + +/** + * String representation of the document text block that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of paragraphs in the block if the type is `VisionDocumentTextBlockType.text`. Otherwise, + * the array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionDocumentTextParagraph *> *paragraphs; + +/** + * The rectangle that contains the document text block relative to the image in the default + * coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * The confidence of the recognized document text block. + */ +@property(nonatomic, readonly) NSNumber *confidence; + +/** + * An array of recognized languages in the document text block. If no languages are recognized, the + * array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The recognized start or end of the document text block. + */ +@property(nonatomic, readonly, nullable) FIRVisionTextRecognizedBreak *recognizedBreak; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextParagraph.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextParagraph.h new file mode 100755 index 000000000..42b593ab7 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextParagraph.h @@ -0,0 +1,55 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionDocumentTextWord; +@class FIRVisionTextRecognizedBreak; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A document text paragraph recognized in an image that consists of an array of words. + */ +NS_SWIFT_NAME(VisionDocumentTextParagraph) +@interface FIRVisionDocumentTextParagraph : NSObject + +/** + * String representation of the document text paragraph that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of words in the document text paragraph. + */ +@property(nonatomic, readonly) NSArray<FIRVisionDocumentTextWord *> *words; + +/** + * The rectangle that contains the document text paragraph relative to the image in the default + * coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * The confidence of the recognized document text paragraph. + */ +@property(nonatomic, readonly) NSNumber *confidence; + +/** + * An array of recognized languages in the document text paragraph. If no languages are recognized, + * the array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The recognized start or end of the document text paragraph. + */ +@property(nonatomic, readonly, nullable) FIRVisionTextRecognizedBreak *recognizedBreak; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextRecognizer.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextRecognizer.h new file mode 100755 index 000000000..3d45b105d --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextRecognizer.h @@ -0,0 +1,42 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionDocumentText; +@class FIRVisionImage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The callback to invoke when the document text recognition completes. + * + * @param text Recognized document text in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionDocumentTextRecognitionCallback)(FIRVisionDocumentText *_Nullable text, + NSError *_Nullable error) + NS_SWIFT_NAME(VisionDocumentTextRecognitionCallback); + +/** + * A cloud document text recognizer that recognizes text in an image. + */ +NS_SWIFT_NAME(VisionDocumentTextRecognizer) +@interface FIRVisionDocumentTextRecognizer : NSObject + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Processes the given image for cloud document text recognition. + * + * @param image The image to process for recognizing document text. + * @param completion Handler to call back on the main queue when document text recognition + * completes. + */ +- (void)processImage:(FIRVisionImage *)image + completion:(FIRVisionDocumentTextRecognitionCallback)completion + NS_SWIFT_NAME(process(_:completion:)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextSymbol.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextSymbol.h new file mode 100755 index 000000000..830126b07 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextSymbol.h @@ -0,0 +1,49 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionTextRecognizedBreak; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A document text symbol recognized in an image. + */ +NS_SWIFT_NAME(VisionDocumentTextSymbol) +@interface FIRVisionDocumentTextSymbol : NSObject + +/** + * String representation of the document text symbol that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * The rectangle that contains the document text symbol relative to the image in the default + * coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * The confidence of the recognized document text symbol. + */ +@property(nonatomic, readonly) NSNumber *confidence; + +/** + * An array of recognized languages in the document text symbol. If no languages are recognized, the + * array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The recognized start or end of the document text symbol. + */ +@property(nonatomic, readonly, nullable) FIRVisionTextRecognizedBreak *recognizedBreak; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextWord.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextWord.h new file mode 100755 index 000000000..66659b1c2 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionDocumentTextWord.h @@ -0,0 +1,55 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionDocumentTextSymbol; +@class FIRVisionTextRecognizedBreak; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A document text word recognized in an image that consists of an array of symbols. + */ +NS_SWIFT_NAME(VisionDocumentTextWord) +@interface FIRVisionDocumentTextWord : NSObject + +/** + * String representation of the document text word that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of symbols in the document text word. + */ +@property(nonatomic, readonly) NSArray<FIRVisionDocumentTextSymbol *> *symbols; + +/** + * The rectangle that contains the document text word relative to the image in the default + * coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * The confidence of the recognized document text word. + */ +@property(nonatomic, readonly) NSNumber *confidence; + +/** + * An array of recognized languages in the document text word. If no languages are recognized, the + * array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The recognized start or end of the document text word. + */ +@property(nonatomic, readonly, nullable) FIRVisionTextRecognizedBreak *recognizedBreak; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFace.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFace.h new file mode 100755 index 000000000..ad9db97ea --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFace.h @@ -0,0 +1,106 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +#import "FIRVisionFaceContour.h" +#import "FIRVisionFaceLandmark.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A human face detected in an image. + */ +NS_SWIFT_NAME(VisionFace) +@interface FIRVisionFace : NSObject + +/** + * The rectangle that holds the discovered relative to the detected image in the view + * coordinate system. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * Indicates whether the face has a tracking ID. + */ +@property(nonatomic, readonly) BOOL hasTrackingID; + +/** + * The tracking identifier of the face. + */ +@property(nonatomic, readonly) NSInteger trackingID; + +/** + * Indicates whether the detector found the head y euler angle. + */ +@property(nonatomic, readonly) BOOL hasHeadEulerAngleY; + +/** + * Indicates the rotation of the face about the vertical axis of the image. Positive y euler angle + * is when the face is turned towards the right side of the image that is being processed. + */ +@property(nonatomic, readonly) CGFloat headEulerAngleY; + +/** + * Indicates whether the detector found the head z euler angle. + */ +@property(nonatomic, readonly) BOOL hasHeadEulerAngleZ; + +/** + * Indicates the rotation of the face about the axis pointing out of the image. Positive z euler + * angle is a counter-clockwise rotation within the image plane. + */ +@property(nonatomic, readonly) CGFloat headEulerAngleZ; + +/** + * Indicates whether a smiling probability is available. + */ +@property(nonatomic, readonly) BOOL hasSmilingProbability; + +/** + * Probability that the face is smiling. + */ +@property(nonatomic, readonly) CGFloat smilingProbability; + +/** + * Indicates whether a left eye open probability is available. + */ +@property(nonatomic, readonly) BOOL hasLeftEyeOpenProbability; + +/** + * Probability that the face's left eye is open. + */ +@property(nonatomic, readonly) CGFloat leftEyeOpenProbability; + +/** + * Indicates whether a right eye open probability is available. + */ +@property(nonatomic, readonly) BOOL hasRightEyeOpenProbability; + +/** + * Probability that the face's right eye is open. + */ +@property(nonatomic, readonly) CGFloat rightEyeOpenProbability; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns the landmark, if any, of the given type in this detected face. + * + * @param type The type of the facial landmark. + * @return The landmark of the given type in this face. nil if there isn't one. + */ +- (nullable FIRVisionFaceLandmark *)landmarkOfType:(FIRFaceLandmarkType)type; + +/** + * Returns the contour, if any, of the given type in this detected face. + * + * @param type The type of the facial contour. + * @return The contour of the given type in this face. nil if there isn't one. + */ +- (nullable FIRVisionFaceContour *)contourOfType:(FIRFaceContourType)type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceContour.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceContour.h new file mode 100755 index 000000000..9a8e70e55 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceContour.h @@ -0,0 +1,77 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionPoint; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Facial contour types. + */ +typedef NSString *FIRFaceContourType NS_EXTENSIBLE_STRING_ENUM NS_SWIFT_NAME(FaceContourType); + +/** All contour points including left and right cheeks. */ +extern FIRFaceContourType const FIRFaceContourTypeAll; + +/** A set of points that outline the face oval. */ +extern FIRFaceContourType const FIRFaceContourTypeFace; + +/** A set of points that outline the top of the left eyebrow. */ +extern FIRFaceContourType const FIRFaceContourTypeLeftEyebrowTop; + +/** A set of points that outline the bottom of the left eyebrow. */ +extern FIRFaceContourType const FIRFaceContourTypeLeftEyebrowBottom; + +/** A set of points that outline the top of the right eyebrow. */ +extern FIRFaceContourType const FIRFaceContourTypeRightEyebrowTop; + +/** A set of points that outline the bottom of the right eyebrow. */ +extern FIRFaceContourType const FIRFaceContourTypeRightEyebrowBottom; + +/** A set of points that outline the left eye. */ +extern FIRFaceContourType const FIRFaceContourTypeLeftEye; + +/** A set of points that outline the right eye. */ +extern FIRFaceContourType const FIRFaceContourTypeRightEye; + +/** A set of points that outline the top of the upper lip. */ +extern FIRFaceContourType const FIRFaceContourTypeUpperLipTop; + +/** A set of points that outline the bottom of the upper lip. */ +extern FIRFaceContourType const FIRFaceContourTypeUpperLipBottom; + +/** A set of points that outline the top of the lower lip. */ +extern FIRFaceContourType const FIRFaceContourTypeLowerLipTop; + +/** A set of points that outline the bottom of the lower lip. */ +extern FIRFaceContourType const FIRFaceContourTypeLowerLipBottom; + +/** A set of points that outline the nose bridge. */ +extern FIRFaceContourType const FIRFaceContourTypeNoseBridge; + +/** A set of points that outline the bottom of the nose. */ +extern FIRFaceContourType const FIRFaceContourTypeNoseBottom; + +/** + * A contour on a human face detected in an image. + */ +NS_SWIFT_NAME(VisionFaceContour) +@interface FIRVisionFaceContour : NSObject + +/** + * The facial contour type. + */ +@property(nonatomic, readonly) FIRFaceContourType type; + +/** + * An array of 2D points that make up the facial contour. + */ +@property(nonatomic, readonly) NSArray<FIRVisionPoint *> *points; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetector.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetector.h new file mode 100755 index 000000000..04ab11f36 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetector.h @@ -0,0 +1,55 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionFace; +@class FIRVisionImage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A block containing an array of faces or `nil` if there's an error. + * + * @param faces Array of faces detected in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionFaceDetectionCallback)(NSArray<FIRVisionFace *> *_Nullable faces, + NSError *_Nullable error) + NS_SWIFT_NAME(VisionFaceDetectionCallback); + +/** + * A face detector that detects faces in an image. + */ +NS_SWIFT_NAME(VisionFaceDetector) +@interface FIRVisionFaceDetector : NSObject + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Processes the given image for face detection. The detection is performed asynchronously and calls + * back the completion handler with the detected face results or error on the main thread. + * + * @param image The vision image to use for detecting faces. + * @param completion Handler to call back on the main thread with faces detected or error. + */ +- (void)processImage:(FIRVisionImage *)image + completion:(FIRVisionFaceDetectionCallback)completion + NS_SWIFT_NAME(process(_:completion:)); + +/** + * Returns detected face results in the given image or `nil` if there was an error. The detection is + * performed synchronously on the calling thread. + * + * @discussion It is advised to call this method off the main thread to avoid blocking the UI. As a + * result, an `NSException` is raised if this method is called on the main thread. + * @param image The vision image to use for detecting faces. + * @param error An optional error parameter populated when there is an error during detection. + * @return Array of faces detected in the given image or `nil` if there was an error. + */ +- (nullable NSArray<FIRVisionFace *> *)resultsInImage:(FIRVisionImage *)image + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetectorOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetectorOptions.h new file mode 100755 index 000000000..9fa34eb6a --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceDetectorOptions.h @@ -0,0 +1,124 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionFaceDetectorClassificationMode + * Classification mode for face detection. + */ +typedef NS_ENUM(NSUInteger, FIRVisionFaceDetectorClassificationMode) { + /** + * Face classification mode indicating that the detector performs no classification. + */ + FIRVisionFaceDetectorClassificationModeNone = 1, + /** + * Face classification mode indicating that the detector performs all classifications. + */ + FIRVisionFaceDetectorClassificationModeAll, +} NS_SWIFT_NAME(VisionFaceDetectorClassificationMode); + +/** + * @enum VisionFaceDetectorPerformanceMode + * Performance preference for accuracy or speed of face detection. + */ +typedef NS_ENUM(NSUInteger, FIRVisionFaceDetectorPerformanceMode) { + /** + * Face detection performance mode that runs faster, but may detect fewer faces and/or return + * results with lower accuracy. + */ + FIRVisionFaceDetectorPerformanceModeFast = 1, + /** + * Face detection performance mode that runs slower, but may detect more faces and/or return + * results with higher accuracy. + */ + FIRVisionFaceDetectorPerformanceModeAccurate, +} NS_SWIFT_NAME(VisionFaceDetectorPerformanceMode); + +/** + * @enum VisionFaceDetectorLandmarkMode + * Landmark detection mode for face detection. + */ +typedef NS_ENUM(NSUInteger, FIRVisionFaceDetectorLandmarkMode) { + /** + * Face landmark mode indicating that the detector performs no landmark detection. + */ + FIRVisionFaceDetectorLandmarkModeNone = 1, + /** + * Face landmark mode indicating that the detector performs landmark detection. + */ + FIRVisionFaceDetectorLandmarkModeAll, +} NS_SWIFT_NAME(VisionFaceDetectorLandmarkMode); + +/** + * @enum VisionFaceDetectorContourMode + * Contour detection mode for face detection. + */ +typedef NS_ENUM(NSUInteger, FIRVisionFaceDetectorContourMode) { + /** + * Face contour mode indicating that the detector performs no contour detection. + */ + FIRVisionFaceDetectorContourModeNone = 1, + /** + * Face contour mode indicating that the detector performs contour detection. + */ + FIRVisionFaceDetectorContourModeAll, +} NS_SWIFT_NAME(VisionFaceDetectorContourMode); + +/** + * Options for specifying a face detector. + */ +NS_SWIFT_NAME(VisionFaceDetectorOptions) +@interface FIRVisionFaceDetectorOptions : NSObject + +/** + * The face detector classification mode for characterizing attributes such as smiling. Defaults to + * `.none`. + */ +@property(nonatomic) FIRVisionFaceDetectorClassificationMode classificationMode; + +/** + * The face detector performance mode that determines the accuracy of the results and the speed of + * the detection. Defaults to `.fast`. + */ +@property(nonatomic) FIRVisionFaceDetectorPerformanceMode performanceMode; + +/** + * The face detector landmark mode that determines the type of landmark results returned by + * detection. Defaults to `.none`. + */ +@property(nonatomic) FIRVisionFaceDetectorLandmarkMode landmarkMode; + +/** + * The face detector contour mode that determines the type of contour results returned by detection. + * Defaults to `.none`. + * + * <p>The following detection results are returned when setting this mode to `.all`: + * + * <p>`performanceMode` set to `.fast`, and both `classificationMode` and `landmarkMode` set to + * `.none`, then only the prominent face will be returned with detected contours. + * + * <p>`performanceMode` set to `.accurate`, or if `classificationMode` or `landmarkMode` is set to + * `.all`, then all detected faces will be returned, but only the prominent face will have + * detecteted contours. + */ +@property(nonatomic) FIRVisionFaceDetectorContourMode contourMode; + +/** + * The smallest desired face size. The size is expressed as a proportion of the width of the head to + * the image width. For example, if a value of 0.1 is specified, then the smallest face to search + * for is roughly 10% of the width of the image being searched. Defaults to 0.1. This option does + * not apply to contour detection. + */ +@property(nonatomic) CGFloat minFaceSize; + +/** + * Whether the face tracking feature is enabled for face detection. Defaults to NO. When + * `performanceMode` is set to `.fast`, and both `classificationMode` and `landmarkMode` set to + * `.none`, this option will be ignored and tracking will be disabled. + */ +@property(nonatomic, getter=isTrackingEnabled) BOOL trackingEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceLandmark.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceLandmark.h new file mode 100755 index 000000000..b8662194d --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionFaceLandmark.h @@ -0,0 +1,66 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionPoint; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Type of all facial landmarks. + */ +typedef NSString *FIRFaceLandmarkType NS_EXTENSIBLE_STRING_ENUM NS_SWIFT_NAME(FaceLandmarkType); + +/** Center of the bottom lip. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeMouthBottom; + +/** Right corner of the mouth */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeMouthRight; + +/** Left corner of the mouth */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeMouthLeft; + +/** Midpoint of the left ear tip and left ear lobe. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeLeftEar; + +/** Midpoint of the right ear tip and right ear lobe. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeRightEar; + +/** Left eye. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeLeftEye; + +/** Right eye. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeRightEye; + +/** Left cheek. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeLeftCheek; + +/** Right cheek. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeRightCheek; + +/** Midpoint between the nostrils where the nose meets the face. */ +extern FIRFaceLandmarkType const FIRFaceLandmarkTypeNoseBase; + +/** + * A landmark on a human face detected in an image. + */ +NS_SWIFT_NAME(VisionFaceLandmark) +@interface FIRVisionFaceLandmark : NSObject + +/** + * The type of the facial landmark. + */ +@property(nonatomic, readonly) FIRFaceLandmarkType type; + +/** + * 2D position of the facial landmark. + */ +@property(nonatomic, readonly) FIRVisionPoint *position; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImage.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImage.h new file mode 100755 index 000000000..d29d72eab --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImage.h @@ -0,0 +1,53 @@ +#import <CoreMedia/CoreMedia.h> +#import <UIKit/UIKit.h> + +@class FIRVisionImageMetadata; + +NS_ASSUME_NONNULL_BEGIN + +/** + * An image or image buffer used in vision detection, with optional metadata. + */ +NS_SWIFT_NAME(VisionImage) +@interface FIRVisionImage : NSObject + +/** + * Metadata about the image (e.g. image orientation). If metadata is not specified, the default + * metadata values are used. + */ +@property(nonatomic, nullable) FIRVisionImageMetadata *metadata; + +/** + * Initializes a VisionImage object with the given image. + * + * @param image Image to use in vision detection. The given image should be rotated, so its + * `imageOrientation` property is set to `UIImageOrientationUp` value. The `UIImage` must have + * non-NULL `CGImage` property. + * @return A VisionImage instance with the given image. + */ +- (instancetype)initWithImage:(UIImage *)image NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a VisionImage object with the given image buffer. To improve performance, it is + * recommended to minimize the lifespan and number of instances of this class when initializing with + * a `CMSampleBufferRef`. + * + * @param sampleBuffer Image buffer to use in vision detection. The buffer must be based on + * a pixel buffer (not compressed data), and the pixel format must be one of: + * - `kCVPixelFormatType_32BGRA` + * - `kCVPixelFormatType_420YpCbCr8BiPlanarFullRange` + * - `kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange` + * In practice: this works with the video output of the phone's camera, but not other + * arbitrary sources of `CMSampleBufferRef`s. + * @return A VisionImage instance with the given image buffer. + */ +- (instancetype)initWithBuffer:(CMSampleBufferRef)sampleBuffer NS_DESIGNATED_INITIALIZER; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabel.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabel.h new file mode 100755 index 000000000..bf6907468 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabel.h @@ -0,0 +1,39 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * Represents a label for an image. + */ +NS_SWIFT_NAME(VisionImageLabel) +@interface FIRVisionImageLabel : NSObject + +/** + * The human readable label text in American English. For example: "Balloon". + * + * @discussion This string is not fit for display purposes, as it is not localized. Use the + * `entityID` and query the Knowledge Graph to get a localized description of the label text. + */ +@property(nonatomic, copy, readonly) NSString *text; + +/** + * Confidence for the label in range [0, 1]. The value is a `floatValue`. + */ +@property(nonatomic, readonly, nullable) NSNumber *confidence; + +/** + * Opaque entity ID used to query the Knowledge Graph to get a localized description of the label + * text. Some IDs may be available in [Google Knowledge Graph Search API] + * (https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, readonly, nullable) NSString *entityID; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabeler.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabeler.h new file mode 100755 index 000000000..2838e43b7 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageLabeler.h @@ -0,0 +1,55 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionImageLabel; +@class FIRVisionImage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A block containing an array of labels or `nil` if there's an error. + * + * @param labels Array of labels detected in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionImageLabelerCallback)(NSArray<FIRVisionImageLabel *> *_Nullable labels, + NSError *_Nullable error) + NS_SWIFT_NAME(VisionImageLabelerCallback); + +/** + * @enum VisionImageLabelerType + * An enum of image labeler types. + */ +typedef NS_ENUM(NSUInteger, FIRVisionImageLabelerType) { + /** On-device image labeler type. */ + FIRVisionImageLabelerTypeOnDevice, + /** Cloud image labeler type. */ + FIRVisionImageLabelerTypeCloud, +} NS_SWIFT_NAME(VisionImageLabelerType); + +/** + * An on-device or cloud image labeler for labeling images. + */ +NS_SWIFT_NAME(VisionImageLabeler) +@interface FIRVisionImageLabeler : NSObject + +/** The image labeler type. */ +@property(nonatomic, readonly) FIRVisionImageLabelerType type; + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Processes the given image for on-device or cloud image labeling. + * + * @param image The image to process. + * @param completion Handler to call back on the main queue with labels or error. + */ +- (void)processImage:(FIRVisionImage *)image + completion:(FIRVisionImageLabelerCallback)completion + NS_SWIFT_NAME(process(_:completion:)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageMetadata.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageMetadata.h new file mode 100755 index 000000000..9213b2c82 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionImageMetadata.h @@ -0,0 +1,59 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionDetectorImageOrientation + * This enum specifies where the origin (0,0) of the image is located. The constant has the same + * value as defined by EXIF specifications. + */ +typedef NS_ENUM(NSUInteger, FIRVisionDetectorImageOrientation) { + /** + * Orientation code indicating the 0th row is the top and the 0th column is the left side. + */ + FIRVisionDetectorImageOrientationTopLeft = 1, + /** + * Orientation code indicating the 0th row is the top and the 0th column is the right side. + */ + FIRVisionDetectorImageOrientationTopRight, + /** + * Orientation code indicating the 0th row is the bottom and the 0th column is the right side. + */ + FIRVisionDetectorImageOrientationBottomRight, + /** + * Orientation code indicating the 0th row is the bottom and the 0th column is the left side. + */ + FIRVisionDetectorImageOrientationBottomLeft, + /** + * Orientation code indicating the 0th row is the left side and the 0th column is the top. + */ + FIRVisionDetectorImageOrientationLeftTop, + /** + * Orientation code indicating the 0th row is the right side and the 0th column is the top. + */ + FIRVisionDetectorImageOrientationRightTop, + /** + * Orientation code indicating the 0th row is the right side and the 0th column is the bottom. + */ + FIRVisionDetectorImageOrientationRightBottom, + /** + * Orientation code indicating the 0th row is the left side and the 0th column is the + * bottom. + */ + FIRVisionDetectorImageOrientationLeftBottom, +} NS_SWIFT_NAME(VisionDetectorImageOrientation); + +/** + * Metadata of an image used in feature detection. + */ +NS_SWIFT_NAME(VisionImageMetadata) +@interface FIRVisionImageMetadata : NSObject + +/** + * The display orientation of the image. Defaults to `.topLeft`. + */ +@property(nonatomic) FIRVisionDetectorImageOrientation orientation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionLatitudeLongitude.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionLatitudeLongitude.h new file mode 100755 index 000000000..f519754f0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionLatitudeLongitude.h @@ -0,0 +1,41 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * An object representing a latitude/longitude pair. This is expressed as a pair of doubles + * representing degrees latitude and degrees longitude. Unless specified otherwise, this must + * conform to the <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84 + * standard</a>. Values must be within normalized ranges. + */ +NS_SWIFT_NAME(VisionLatitudeLongitude) +@interface FIRVisionLatitudeLongitude : NSObject + +/** + * The latitude in degrees. It must be in the range [-90.0, +90.0]. The value is double. + */ +@property(nonatomic, nullable) NSNumber *latitude; + +/** + * The longitude in degrees. It must be in the range [-180.0, +180.0]. The value is double. + */ +@property(nonatomic, nullable) NSNumber *longitude; + +/** + * Initializes a VisionLatitudeLongitude with the given latitude and longitude. + * + * @param latitude Latitude of the location. The value is double. + * @param longitude Longitude of the location. The value is double. + * @return A VisionLatitudeLongitude instance with the given latigude and longitude. + */ +- (instancetype)initWithLatitude:(nullable NSNumber *)latitude + longitude:(nullable NSNumber *)longitude NS_DESIGNATED_INITIALIZER; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionOnDeviceImageLabelerOptions.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionOnDeviceImageLabelerOptions.h new file mode 100755 index 000000000..d81d36821 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionOnDeviceImageLabelerOptions.h @@ -0,0 +1,25 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** Options for an on-device image labeler. */ +NS_SWIFT_NAME(VisionOnDeviceImageLabelerOptions) +@interface FIRVisionOnDeviceImageLabelerOptions : NSObject + +/** + * The confidence threshold for labels returned by the image labeler. Labels returned by the image + * labeler will have a confidence level higher or equal to the given threshold. Values must be in + * range [0, 1]. If unset or an invalid value is set, the default threshold of 0.5 is used. There is + * no limit on the maximum number of labels returned by an on-device image labeler. + */ +@property(nonatomic) float confidenceThreshold; + +/** + * Designated initializer that creates a new instance of on-device image labeler options with the + * default values. + */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionPoint.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionPoint.h new file mode 100755 index 000000000..be9fcfda7 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionPoint.h @@ -0,0 +1,35 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * A 2D or 3D point in the image. A valid point must have both x and y coordinates. The point's + * coordinates are in the same scale as the original image. + */ +NS_SWIFT_NAME(VisionPoint) +@interface FIRVisionPoint : NSObject + +/** + * X coordinate. The value is float. + */ +@property(nonatomic, readonly) NSNumber *x; + +/** + * Y coordinate. The value is float. + */ +@property(nonatomic, readonly) NSNumber *y; + +/** + * Z coordinate (or depth). The value is float. Z is nil if it is a 2D point. + */ +@property(nonatomic, readonly, nullable) NSNumber *z; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionText.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionText.h new file mode 100755 index 000000000..04056ad10 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionText.h @@ -0,0 +1,30 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionTextBlock; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Recognized text in an image. + */ +NS_SWIFT_NAME(VisionText) +@interface FIRVisionText : NSObject + +/** + * String representation of the recognized text. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of blocks recognized in the text. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextBlock *> *blocks; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextBlock.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextBlock.h new file mode 100755 index 000000000..b91296db9 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextBlock.h @@ -0,0 +1,57 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionTextLine; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A text block recognized in an image that consists of an array of text lines. + */ +NS_SWIFT_NAME(VisionTextBlock) +@interface FIRVisionTextBlock : NSObject + +/** + * String representation of the text block that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of text lines that make up the block. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextLine *> *lines; + +/** + * The rectangle that contains the text block relative to the image in the default coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * An array of recognized languages in the text block. On-device text recognizers only detect + * Latin-based languages, while cloud text recognizers can detect multiple languages. If no + * languages are recognized, the array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The four corner points of the text block in clockwise order starting with the top left point + * relative to the image in the default coordinate space. The `NSValue` objects are `CGPoint`s. For + * cloud text recognizers, the array is `nil`. + */ +@property(nonatomic, readonly, nullable) NSArray<NSValue *> *cornerPoints; + +/** + * The confidence of the recognized text block. The value is `nil` for all text recognizers except + * for cloud text recognizers with model type `VisionCloudTextModelType.dense`. + */ +@property(nonatomic, readonly, nullable) NSNumber *confidence; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextElement.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextElement.h new file mode 100755 index 000000000..8f325343c --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextElement.h @@ -0,0 +1,51 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A text element recognized in an image. A text element is roughly equivalent to a space-separated + * word in most Latin-script languages. + */ +NS_SWIFT_NAME(VisionTextElement) +@interface FIRVisionTextElement : NSObject + +/** + * String representation of the text element that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * The rectangle that contains the text element relative to the image in the default coordinate + * space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * An array of recognized languages in the text element. (Cloud API only.) + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The four corner points of the text element in clockwise order starting with the top left point + * relative to the image in the default coordinate space. The `NSValue` objects are `CGPoint`s. For + * cloud text recognizers, the array is `nil`. + */ +@property(nonatomic, readonly, nullable) NSArray<NSValue *> *cornerPoints; + +/** + * The confidence of the recognized text element. The value is `nil` for all text recognizers except + * for cloud text recognizers with model type `VisionCloudTextModelType.dense`. + */ +@property(nonatomic, readonly, nullable) NSNumber *confidence; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextLine.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextLine.h new file mode 100755 index 000000000..ed57d0d13 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextLine.h @@ -0,0 +1,57 @@ +#import <CoreGraphics/CoreGraphics.h> +#import <Foundation/Foundation.h> + +@class FIRVisionTextElement; +@class FIRVisionTextRecognizedLanguage; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A text line recognized in an image that consists of an array of elements. + */ +NS_SWIFT_NAME(VisionTextLine) +@interface FIRVisionTextLine : NSObject + +/** + * String representation of the text line that was recognized. + */ +@property(nonatomic, readonly) NSString *text; + +/** + * An array of text elements that make up the line. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextElement *> *elements; + +/** + * The rectangle that contains the text line relative to the image in the default coordinate space. + */ +@property(nonatomic, readonly) CGRect frame; + +/** + * An array of recognized languages in the text line. On-device text recognizers only detect + * Latin-based languages, while cloud text recognizers can detect multiple languages. If no + * languages are recognized, the array is empty. + */ +@property(nonatomic, readonly) NSArray<FIRVisionTextRecognizedLanguage *> *recognizedLanguages; + +/** + * The four corner points of the text line in clockwise order starting with the top left point + * relative to the image in the default coordinate space. The `NSValue` objects are `CGPoint`s. For + * cloud text recognizers, the array is `nil`. + */ +@property(nonatomic, readonly, nullable) NSArray<NSValue *> *cornerPoints; + +/** + * The confidence of the recognized text line. The value is `nil` for all text recognizers except + * for cloud text recognizers with model type `VisionCloudTextModelType.dense`. + */ +@property(nonatomic, readonly, nullable) NSNumber *confidence; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedBreak.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedBreak.h new file mode 100755 index 000000000..0381f6e0b --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedBreak.h @@ -0,0 +1,60 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * @enum VisionTextRecognizedBreakType + * An enum of recognized text break types. + */ +typedef NS_ENUM(NSInteger, FIRVisionTextRecognizedBreakType) { + /** + * Unknown break type. + */ + FIRVisionTextRecognizedBreakTypeUnknown, + /** + * Line-wrapping break type. + */ + FIRVisionTextRecognizedBreakTypeLineWrap, + /** + * Hyphen break type. + */ + FIRVisionTextRecognizedBreakTypeHyphen, + /** + * Line break that ends a paragraph. + */ + FIRVisionTextRecognizedBreakTypeLineBreak, + /** + * Space break type. + */ + FIRVisionTextRecognizedBreakTypeSpace, + /** + * Sure space break type. + */ + FIRVisionTextRecognizedBreakTypeSureSpace, +} NS_SWIFT_NAME(VisionTextRecognizedBreakType); + +/** + * Detected break from text recognition. + */ +NS_SWIFT_NAME(VisionTextRecognizedBreak) +@interface FIRVisionTextRecognizedBreak : NSObject + +/** + * The recognized text break type. + */ +@property(nonatomic, readonly) FIRVisionTextRecognizedBreakType type; + +/** + * Indicates whether the break prepends the text element. If `NO`, the break comes after the text + * element. + */ +@property(nonatomic, readonly) BOOL isPrefix; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedLanguage.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedLanguage.h new file mode 100755 index 000000000..dc7618874 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizedLanguage.h @@ -0,0 +1,24 @@ +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + * Detected language from text recognition. + */ +NS_SWIFT_NAME(VisionTextRecognizedLanguage) +@interface FIRVisionTextRecognizedLanguage : NSObject + +/** + * The BCP-47 language code, such as, "en-US" or "sr-Latn". For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, readonly, nullable) NSString *languageCode; + +/** + * Unavailable. + */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizer.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizer.h new file mode 100755 index 000000000..e3d2b318d --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FIRVisionTextRecognizer.h @@ -0,0 +1,61 @@ +#import <Foundation/Foundation.h> + +@class FIRVisionImage; +@class FIRVisionText; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The callback to invoke when the text recognition completes. + * + * @param text Recognized text in the image or `nil` if there was an error. + * @param error The error or `nil`. + */ +typedef void (^FIRVisionTextRecognitionCallback)(FIRVisionText *_Nullable text, + NSError *_Nullable error) + NS_SWIFT_NAME(VisionTextRecognitionCallback); + +/** + * @enum VisionTextRecognizerType + * An enum of text recognizer types. + */ +typedef NS_ENUM(NSInteger, FIRVisionTextRecognizerType) { + /** + * On-Device recognizer type. + */ + FIRVisionTextRecognizerTypeOnDevice, + /** + * Cloud recognizer type. + */ + FIRVisionTextRecognizerTypeCloud, +} NS_SWIFT_NAME(VisionTextRecognizerType); + +/** + * An on-device or cloud text recognizer that recognizes text in an image. + */ +NS_SWIFT_NAME(VisionTextRecognizer) +@interface FIRVisionTextRecognizer : NSObject + +/** + * The text recognizer type. + */ +@property(nonatomic, readonly) FIRVisionTextRecognizerType type; + +/** + * Unavailable. Use `Vision` factory methods. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Processes the given image for on-device or cloud text recognition. + * + * @param image The image to process for recognizing text. + * @param completion Handler to call back on the main queue when text recognition completes. + */ +- (void)processImage:(FIRVisionImage *)image + completion:(FIRVisionTextRecognitionCallback)completion + NS_SWIFT_NAME(process(_:completion:)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FirebaseMLVision.h b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FirebaseMLVision.h new file mode 100755 index 000000000..2defca770 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Headers/FirebaseMLVision.h @@ -0,0 +1,35 @@ +#import "FIRVision.h" +#import "FIRVisionBarcode.h" +#import "FIRVisionBarcodeDetector.h" +#import "FIRVisionBarcodeDetectorOptions.h" +#import "FIRVisionCloudDetectorOptions.h" +#import "FIRVisionCloudDocumentTextRecognizerOptions.h" +#import "FIRVisionCloudImageLabelerOptions.h" +#import "FIRVisionCloudLandmark.h" +#import "FIRVisionCloudLandmarkDetector.h" +#import "FIRVisionCloudTextRecognizerOptions.h" +#import "FIRVisionDocumentText.h" +#import "FIRVisionDocumentTextBlock.h" +#import "FIRVisionDocumentTextParagraph.h" +#import "FIRVisionDocumentTextRecognizer.h" +#import "FIRVisionDocumentTextSymbol.h" +#import "FIRVisionDocumentTextWord.h" +#import "FIRVisionFace.h" +#import "FIRVisionFaceContour.h" +#import "FIRVisionFaceDetector.h" +#import "FIRVisionFaceDetectorOptions.h" +#import "FIRVisionFaceLandmark.h" +#import "FIRVisionImage.h" +#import "FIRVisionImageLabel.h" +#import "FIRVisionImageLabeler.h" +#import "FIRVisionImageMetadata.h" +#import "FIRVisionLatitudeLongitude.h" +#import "FIRVisionOnDeviceImageLabelerOptions.h" +#import "FIRVisionPoint.h" +#import "FIRVisionText.h" +#import "FIRVisionTextBlock.h" +#import "FIRVisionTextElement.h" +#import "FIRVisionTextLine.h" +#import "FIRVisionTextRecognizedBreak.h" +#import "FIRVisionTextRecognizedLanguage.h" +#import "FIRVisionTextRecognizer.h" diff --git a/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Modules/module.modulemap new file mode 100755 index 000000000..7c455f794 --- /dev/null +++ b/Libraries external/Firebase/MLVision/FirebaseMLVision.framework/Modules/module.modulemap @@ -0,0 +1,18 @@ +framework module FirebaseMLVision { + umbrella header "FirebaseMLVision.h" + export * + module * { export * } + link "sqlite3" + link "z" + link framework "AVFoundation" + link framework "Accelerate" + link framework "CoreGraphics" + link framework "CoreMedia" + link framework "CoreVideo" + link framework "Foundation" + link framework "LocalAuthentication" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/GTMSessionFetcher b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/GTMSessionFetcher Binary files differnew file mode 100644 index 000000000..5a3361ffa --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/GTMSessionFetcher diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMGatherInputStream.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMGatherInputStream.h new file mode 100644 index 000000000..ec3c0125d --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMGatherInputStream.h @@ -0,0 +1,52 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// The GTMGatherInput stream is an input stream implementation that is to be +// instantiated with an NSArray of NSData objects. It works in the traditional +// scatter/gather vector I/O model. Rather than allocating a big NSData object +// to hold all of the data and performing a copy into that object, the +// GTMGatherInputStream will maintain a reference to the NSArray and read from +// each NSData in turn as the read method is called. You should not alter the +// underlying set of NSData objects until all read operations on this input +// stream have completed. + +#import <Foundation/Foundation.h> + +#ifndef GTM_NONNULL + #if defined(__has_attribute) + #if __has_attribute(nonnull) + #define GTM_NONNULL(x) __attribute__((nonnull x)) + #else + #define GTM_NONNULL(x) + #endif + #else + #define GTM_NONNULL(x) + #endif +#endif + +// Avoid multiple declaration of this class. +// +// Note: This should match the declaration of GTMGatherInputStream in GTMMIMEDocument.m + +#ifndef GTM_GATHERINPUTSTREAM_DECLARED +#define GTM_GATHERINPUTSTREAM_DECLARED + +@interface GTMGatherInputStream : NSInputStream <NSStreamDelegate> + ++ (NSInputStream *)streamWithArray:(NSArray *)dataArray GTM_NONNULL((1)); + +@end + +#endif // GTM_GATHERINPUTSTREAM_DECLARED diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMMIMEDocument.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMMIMEDocument.h new file mode 100644 index 000000000..451e13239 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMMIMEDocument.h @@ -0,0 +1,148 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This is a simple class to create or parse a MIME document. + +// To create a MIME document, allocate a new GTMMIMEDocument and start adding parts. +// When you are done adding parts, call generateInputStream or generateDispatchData. +// +// A good reference for MIME is http://en.wikipedia.org/wiki/MIME + +#import <Foundation/Foundation.h> + +#ifndef GTM_NONNULL + #if defined(__has_attribute) + #if __has_attribute(nonnull) + #define GTM_NONNULL(x) __attribute__((nonnull x)) + #else + #define GTM_NONNULL(x) + #endif + #else + #define GTM_NONNULL(x) + #endif +#endif + +#ifndef GTM_DECLARE_GENERICS + #if __has_feature(objc_generics) + #define GTM_DECLARE_GENERICS 1 + #else + #define GTM_DECLARE_GENERICS 0 + #endif +#endif + +#ifndef GTM_NSArrayOf + #if GTM_DECLARE_GENERICS + #define GTM_NSArrayOf(value) NSArray<value> + #define GTM_NSDictionaryOf(key, value) NSDictionary<key, value> + #else + #define GTM_NSArrayOf(value) NSArray + #define GTM_NSDictionaryOf(key, value) NSDictionary + #endif // GTM_DECLARE_GENERICS +#endif // GTM_NSArrayOf + + +// GTMMIMEDocumentPart represents a part of a MIME document. +// +// +[GTMMIMEDocument MIMEPartsWithBoundary:data:] returns an array of these. +@interface GTMMIMEDocumentPart : NSObject + +@property(nonatomic, readonly) GTM_NSDictionaryOf(NSString *, NSString *) *headers; +@property(nonatomic, readonly) NSData *headerData; +@property(nonatomic, readonly) NSData *body; +@property(nonatomic, readonly) NSUInteger length; + ++ (instancetype)partWithHeaders:(NSDictionary *)headers body:(NSData *)body; + +@end + +@interface GTMMIMEDocument : NSObject + +// Get or set the unique boundary for the parts that have been added. +// +// When creating a MIME document from parts, this is typically calculated +// automatically after all parts have been added. +@property(nonatomic, copy) NSString *boundary; + +#pragma mark - Methods for Creating a MIME Document + ++ (instancetype)MIMEDocument; + +// Adds a new part to this mime document with the given headers and body. +// The headers keys and values should be NSStrings. +// Adding a part may cause the boundary string to change. +- (void)addPartWithHeaders:(GTM_NSDictionaryOf(NSString *, NSString *) *)headers + body:(NSData *)body GTM_NONNULL((1,2)); + +// An inputstream that can be used to efficiently read the contents of the MIME document. +// +// Any parameter may be null if the result is not wanted. +- (void)generateInputStream:(NSInputStream **)outStream + length:(unsigned long long *)outLength + boundary:(NSString **)outBoundary; + +// A dispatch_data_t with the contents of the MIME document. +// +// Note: dispatch_data_t is one-way toll-free bridged so the result +// may be cast directly to NSData *. +// +// Any parameter may be null if the result is not wanted. +- (void)generateDispatchData:(dispatch_data_t *)outDispatchData + length:(unsigned long long *)outLength + boundary:(NSString **)outBoundary; + +// Utility method for making a header section, including trailing newlines. ++ (NSData *)dataWithHeaders:(GTM_NSDictionaryOf(NSString *, NSString *) *)headers; + +#pragma mark - Methods for Parsing a MIME Document + +// Method for parsing out an array of MIME parts from a MIME document. +// +// Returns an array of GTMMIMEDocumentParts. Returns nil if no part can +// be found. ++ (GTM_NSArrayOf(GTMMIMEDocumentPart *) *)MIMEPartsWithBoundary:(NSString *)boundary + data:(NSData *)fullDocumentData; + +// Utility method for efficiently searching possibly discontiguous NSData +// for occurrences of target byte. This method does not "flatten" an NSData +// that is composed of discontiguous blocks. +// +// The byte offsets of non-overlapping occurrences of the target are returned as +// NSNumbers in the array. ++ (void)searchData:(NSData *)data + targetBytes:(const void *)targetBytes + targetLength:(NSUInteger)targetLength + foundOffsets:(GTM_NSArrayOf(NSNumber *) **)outFoundOffsets; + +// Utility method to parse header bytes into an NSDictionary. ++ (GTM_NSDictionaryOf(NSString *, NSString *) *)headersWithData:(NSData *)data; + +// ------ UNIT TESTING ONLY BELOW ------ + +// Internal methods, exposed for unit testing only. +- (void)seedRandomWith:(u_int32_t)seed; + ++ (NSUInteger)findBytesWithNeedle:(const unsigned char *)needle + needleLength:(NSUInteger)needleLength + haystack:(const unsigned char *)haystack + haystackLength:(NSUInteger)haystackLength + foundOffset:(NSUInteger *)foundOffset; + ++ (void)searchData:(NSData *)data + targetBytes:(const void *)targetBytes + targetLength:(NSUInteger)targetLength + foundOffsets:(GTM_NSArrayOf(NSNumber *) **)outFoundOffsets + foundBlockNumbers:(GTM_NSArrayOf(NSNumber *) **)outFoundBlockNumbers; + +@end diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMReadMonitorInputStream.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMReadMonitorInputStream.h new file mode 100644 index 000000000..4e306428a --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMReadMonitorInputStream.h @@ -0,0 +1,49 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#ifndef GTM_NONNULL + #if defined(__has_attribute) + #if __has_attribute(nonnull) + #define GTM_NONNULL(x) __attribute__((nonnull x)) + #else + #define GTM_NONNULL(x) + #endif + #else + #define GTM_NONNULL(x) + #endif +#endif + + +@interface GTMReadMonitorInputStream : NSInputStream <NSStreamDelegate> + ++ (instancetype)inputStreamWithStream:(NSInputStream *)input GTM_NONNULL((1)); + +- (instancetype)initWithStream:(NSInputStream *)input GTM_NONNULL((1)); + +// The read monitor selector is called when bytes have been read. It should have this signature: +// +// - (void)inputStream:(GTMReadMonitorInputStream *)stream +// readIntoBuffer:(uint8_t *)buffer +// length:(int64_t)length; + +@property(atomic, weak) id readDelegate; +@property(atomic, assign) SEL readSelector; + +// Modes for invoking callbacks, when necessary. +@property(atomic, strong) NSArray *runLoopModes; + +@end diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcher.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcher.h new file mode 100644 index 000000000..7f5fcda98 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcher.h @@ -0,0 +1,1305 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GTMSessionFetcher is a wrapper around NSURLSession for http operations. +// +// What does this offer on top of of NSURLSession? +// +// - Block-style callbacks for useful functionality like progress rather +// than delegate methods. +// - Out-of-process uploads and downloads using NSURLSession, including +// management of fetches after relaunch. +// - Integration with GTMAppAuth for invisible management and refresh of +// authorization tokens. +// - Pretty-printed http logging. +// - Cookies handling that does not interfere with or get interfered with +// by WebKit cookies or on Mac by Safari and other apps. +// - Credentials handling for the http operation. +// - Rate-limiting and cookie grouping when fetchers are created with +// GTMSessionFetcherService. +// +// If the bodyData or bodyFileURL property is set, then a POST request is assumed. +// +// Each fetcher is assumed to be for a one-shot fetch request; don't reuse the object +// for a second fetch. +// +// The fetcher will be self-retained as long as a connection is pending. +// +// To keep user activity private, URLs must have an https scheme (unless the property +// allowedInsecureSchemes is set to permit the scheme.) +// +// Callbacks will be released when the fetch completes or is stopped, so there is no need +// to use weak self references in the callback blocks. +// +// Sample usage: +// +// _fetcherService = [[GTMSessionFetcherService alloc] init]; +// +// GTMSessionFetcher *myFetcher = [_fetcherService fetcherWithURLString:myURLString]; +// myFetcher.retryEnabled = YES; +// myFetcher.comment = @"First profile image"; +// +// // Optionally specify a file URL or NSData for the request body to upload. +// myFetcher.bodyData = [postString dataUsingEncoding:NSUTF8StringEncoding]; +// +// [myFetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) { +// if (error != nil) { +// // Server status code or network error. +// // +// // If the domain is kGTMSessionFetcherStatusDomain then the error code +// // is a failure status from the server. +// } else { +// // Fetch succeeded. +// } +// }]; +// +// There is also a beginFetch call that takes a pointer and selector for the completion handler; +// a pointer and selector is a better style when the callback is a substantial, separate method. +// +// NOTE: Fetches may retrieve data from the server even though the server +// returned an error, so the criteria for success is a non-nil error. +// The completion handler is called when the server status is >= 300 with an NSError +// having domain kGTMSessionFetcherStatusDomain and code set to the server status. +// +// Status codes are at <http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html> +// +// +// Background session support: +// +// Out-of-process uploads and downloads may be created by setting the fetcher's +// useBackgroundSession property. Data to be uploaded should be provided via +// the uploadFileURL property; the download destination should be specified with +// the destinationFileURL. NOTE: Background upload files should be in a location +// that will be valid even after the device is restarted, so the file should not +// be uploaded from a system temporary or cache directory. +// +// Background session transfers are slower, and should typically be used only +// for very large downloads or uploads (hundreds of megabytes). +// +// When background sessions are used in iOS apps, the application delegate must +// pass through the parameters from UIApplicationDelegate's +// application:handleEventsForBackgroundURLSession:completionHandler: to the +// fetcher class. +// +// When the application has been relaunched, it may also create a new fetcher +// instance to handle completion of the transfers. +// +// - (void)application:(UIApplication *)application +// handleEventsForBackgroundURLSession:(NSString *)identifier +// completionHandler:(void (^)())completionHandler { +// // Application was re-launched on completing an out-of-process download. +// +// // Pass the URLSession info related to this re-launch to the fetcher class. +// [GTMSessionFetcher application:application +// handleEventsForBackgroundURLSession:identifier +// completionHandler:completionHandler]; +// +// // Get a fetcher related to this re-launch and re-hook up a completionHandler to it. +// GTMSessionFetcher *fetcher = [GTMSessionFetcher fetcherWithSessionIdentifier:identifier]; +// NSURL *destinationFileURL = fetcher.destinationFileURL; +// fetcher.completionHandler = ^(NSData *data, NSError *error) { +// [self downloadCompletedToFile:destinationFileURL error:error]; +// }; +// } +// +// +// Threading and queue support: +// +// Networking always happens on a background thread; there is no advantage to +// changing thread or queue to create or start a fetcher. +// +// Callbacks are run on the main thread; alternatively, the app may set the +// fetcher's callbackQueue to a dispatch queue. +// +// Once the fetcher's beginFetch method has been called, the fetcher's methods and +// properties may be accessed from any thread. +// +// Downloading to disk: +// +// To have downloaded data saved directly to disk, specify a file URL for the +// destinationFileURL property. +// +// HTTP methods and headers: +// +// Alternative HTTP methods, like PUT, and custom headers can be specified by +// creating the fetcher with an appropriate NSMutableURLRequest. +// +// +// Caching: +// +// The fetcher avoids caching. That is best for API requests, but may hurt +// repeat fetches of static data. Apps may enable a persistent disk cache by +// customizing the config: +// +// fetcher.configurationBlock = ^(GTMSessionFetcher *configFetcher, +// NSURLSessionConfiguration *config) { +// config.URLCache = [NSURLCache sharedURLCache]; +// }; +// +// Or use the standard system config to share cookie storage with web views +// and to enable disk caching: +// +// fetcher.configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; +// +// +// Cookies: +// +// There are three supported mechanisms for remembering cookies between fetches. +// +// By default, a standalone GTMSessionFetcher uses a mutable array held +// statically to track cookies for all instantiated fetchers. This avoids +// cookies being set by servers for the application from interfering with +// Safari and WebKit cookie settings, and vice versa. +// The fetcher cookies are lost when the application quits. +// +// To rely instead on WebKit's global NSHTTPCookieStorage, set the fetcher's +// cookieStorage property: +// myFetcher.cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; +// +// To share cookies with other apps, use the method introduced in iOS 9/OS X 10.11: +// myFetcher.cookieStorage = +// [NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:kMyCompanyContainedID]; +// +// To ignore existing cookies and only have cookies related to the single fetch +// be applied, make a temporary cookie storage object: +// myFetcher.cookieStorage = [[GTMSessionCookieStorage alloc] init]; +// +// Note: cookies set while following redirects will be sent to the server, as +// the redirects are followed by the fetcher. +// +// To completely disable cookies, similar to setting cookieStorageMethod to +// kGTMHTTPFetcherCookieStorageMethodNone, adjust the session configuration +// appropriately in the fetcher or fetcher service: +// fetcher.configurationBlock = ^(GTMSessionFetcher *configFetcher, +// NSURLSessionConfiguration *config) { +// config.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyNever; +// config.HTTPShouldSetCookies = NO; +// }; +// +// If the fetcher is created from a GTMSessionFetcherService object +// then the cookie storage mechanism is set to use the cookie storage in the +// service object rather than the static storage. Disabling cookies in the +// session configuration set on a service object will disable cookies for all +// fetchers created from that GTMSessionFetcherService object, since the session +// configuration is propagated to the fetcher. +// +// +// Monitoring data transfers. +// +// The fetcher supports a variety of properties for progress monitoring +// progress with callback blocks. +// GTMSessionFetcherSendProgressBlock sendProgressBlock +// GTMSessionFetcherReceivedProgressBlock receivedProgressBlock +// GTMSessionFetcherDownloadProgressBlock downloadProgressBlock +// +// If supplied by the server, the anticipated total download size is available +// as [[myFetcher response] expectedContentLength] (and may be -1 for unknown +// download sizes.) +// +// +// Automatic retrying of fetches +// +// The fetcher can optionally create a timer and reattempt certain kinds of +// fetch failures (status codes 408, request timeout; 502, gateway failure; +// 503, service unavailable; 504, gateway timeout; networking errors +// NSURLErrorTimedOut and NSURLErrorNetworkConnectionLost.) The user may +// set a retry selector to customize the type of errors which will be retried. +// +// Retries are done in an exponential-backoff fashion (that is, after 1 second, +// 2, 4, 8, and so on.) +// +// Enabling automatic retries looks like this: +// myFetcher.retryEnabled = YES; +// +// With retries enabled, the completion callbacks are called only +// when no more retries will be attempted. Calling the fetcher's stopFetching +// method will terminate the retry timer, without the finished or failure +// selectors being invoked. +// +// Optionally, the client may set the maximum retry interval: +// myFetcher.maxRetryInterval = 60.0; // in seconds; default is 60 seconds +// // for downloads, 600 for uploads +// +// Servers should never send a 400 or 500 status for errors that are retryable +// by clients, as those values indicate permanent failures. In nearly all +// cases, the default standard retry behavior is correct for clients, and no +// custom client retry behavior is needed or appropriate. Servers that send +// non-retryable status codes and expect the client to retry the request are +// faulty. +// +// Still, the client may provide a block to determine if a status code or other +// error should be retried. The block returns YES to set the retry timer or NO +// to fail without additional fetch attempts. +// +// The retry method may return the |suggestedWillRetry| argument to get the +// default retry behavior. Server status codes are present in the +// error argument, and have the domain kGTMSessionFetcherStatusDomain. The +// user's method may look something like this: +// +// myFetcher.retryBlock = ^(BOOL suggestedWillRetry, NSError *error, +// GTMSessionFetcherRetryResponse response) { +// // Perhaps examine error.domain and error.code, or fetcher.retryCount +// // +// // Respond with YES to start the retry timer, NO to proceed to the failure +// // callback, or suggestedWillRetry to get default behavior for the +// // current error domain and code values. +// response(suggestedWillRetry); +// }; + + +#import <Foundation/Foundation.h> + +#if TARGET_OS_IPHONE +#import <UIKit/UIKit.h> +#endif +#if TARGET_OS_WATCH +#import <WatchKit/WatchKit.h> +#endif + +// By default it is stripped from non DEBUG builds. Developers can override +// this in their project settings. +#ifndef STRIP_GTM_FETCH_LOGGING + #if !DEBUG + #define STRIP_GTM_FETCH_LOGGING 1 + #else + #define STRIP_GTM_FETCH_LOGGING 0 + #endif +#endif + +// Logs in debug builds. +#ifndef GTMSESSION_LOG_DEBUG + #if DEBUG + #define GTMSESSION_LOG_DEBUG(...) NSLog(__VA_ARGS__) + #else + #define GTMSESSION_LOG_DEBUG(...) do { } while (0) + #endif +#endif + +// Asserts in debug builds (or logs in debug builds if GTMSESSION_ASSERT_AS_LOG +// or NS_BLOCK_ASSERTIONS are defined.) +#ifndef GTMSESSION_ASSERT_DEBUG + #if DEBUG && !defined(NS_BLOCK_ASSERTIONS) && !GTMSESSION_ASSERT_AS_LOG + #undef GTMSESSION_ASSERT_AS_LOG + #define GTMSESSION_ASSERT_AS_LOG 1 + #endif + + #if DEBUG && !GTMSESSION_ASSERT_AS_LOG + #define GTMSESSION_ASSERT_DEBUG(...) NSAssert(__VA_ARGS__) + #elif DEBUG + #define GTMSESSION_ASSERT_DEBUG(pred, ...) if (!(pred)) { NSLog(__VA_ARGS__); } + #else + #define GTMSESSION_ASSERT_DEBUG(pred, ...) do { } while (0) + #endif +#endif + +// Asserts in debug builds, logs in release builds (or logs in debug builds if +// GTMSESSION_ASSERT_AS_LOG is defined.) +#ifndef GTMSESSION_ASSERT_DEBUG_OR_LOG + #if DEBUG && !GTMSESSION_ASSERT_AS_LOG + #define GTMSESSION_ASSERT_DEBUG_OR_LOG(...) NSAssert(__VA_ARGS__) + #else + #define GTMSESSION_ASSERT_DEBUG_OR_LOG(pred, ...) if (!(pred)) { NSLog(__VA_ARGS__); } + #endif +#endif + +// Macro useful for examining messages from NSURLSession during debugging. +#if 0 +#define GTM_LOG_SESSION_DELEGATE(...) GTMSESSION_LOG_DEBUG(__VA_ARGS__) +#else +#define GTM_LOG_SESSION_DELEGATE(...) +#endif + +#ifndef GTM_NULLABLE + #if __has_feature(nullability) // Available starting in Xcode 6.3 + #define GTM_NULLABLE_TYPE __nullable + #define GTM_NONNULL_TYPE __nonnull + #define GTM_NULLABLE nullable + #define GTM_NONNULL_DECL nonnull // GTM_NONNULL is used by GTMDefines.h + #define GTM_NULL_RESETTABLE null_resettable + + #define GTM_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN + #define GTM_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END + #else + #define GTM_NULLABLE_TYPE + #define GTM_NONNULL_TYPE + #define GTM_NULLABLE + #define GTM_NONNULL_DECL + #define GTM_NULL_RESETTABLE + #define GTM_ASSUME_NONNULL_BEGIN + #define GTM_ASSUME_NONNULL_END + #endif // __has_feature(nullability) +#endif // GTM_NULLABLE + +#if (TARGET_OS_TV \ + || TARGET_OS_WATCH \ + || (!TARGET_OS_IPHONE && defined(MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12) \ + || (TARGET_OS_IPHONE && defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0)) +#define GTMSESSION_DEPRECATE_ON_2016_SDKS(_MSG) __attribute__((deprecated("" _MSG))) +#else +#define GTMSESSION_DEPRECATE_ON_2016_SDKS(_MSG) +#endif + +#ifndef GTM_DECLARE_GENERICS + #if __has_feature(objc_generics) + #define GTM_DECLARE_GENERICS 1 + #else + #define GTM_DECLARE_GENERICS 0 + #endif +#endif + +#ifndef GTM_NSArrayOf + #if GTM_DECLARE_GENERICS + #define GTM_NSArrayOf(value) NSArray<value> + #define GTM_NSDictionaryOf(key, value) NSDictionary<key, value> + #else + #define GTM_NSArrayOf(value) NSArray + #define GTM_NSDictionaryOf(key, value) NSDictionary + #endif // __has_feature(objc_generics) +#endif // GTM_NSArrayOf + +// For iOS, the fetcher can declare itself a background task to allow fetches +// to finish when the app leaves the foreground. +// +// (This is unrelated to providing a background configuration, which allows +// out-of-process uploads and downloads.) +// +// To disallow use of background tasks during fetches, the target should define +// GTM_BACKGROUND_TASK_FETCHING to 0, or alternatively may set the +// skipBackgroundTask property to YES. +#if TARGET_OS_IPHONE && !TARGET_OS_WATCH && !defined(GTM_BACKGROUND_TASK_FETCHING) + #define GTM_BACKGROUND_TASK_FETCHING 1 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if (TARGET_OS_TV \ + || TARGET_OS_WATCH \ + || (!TARGET_OS_IPHONE && defined(MAC_OS_X_VERSION_10_11) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_11) \ + || (TARGET_OS_IPHONE && defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0)) + #ifndef GTM_USE_SESSION_FETCHER + #define GTM_USE_SESSION_FETCHER 1 + #endif +#endif + +#if !defined(GTMBridgeFetcher) + // These bridge macros should be identical in GTMHTTPFetcher.h and GTMSessionFetcher.h + #if GTM_USE_SESSION_FETCHER + // Macros to new fetcher class. + #define GTMBridgeFetcher GTMSessionFetcher + #define GTMBridgeFetcherService GTMSessionFetcherService + #define GTMBridgeFetcherServiceProtocol GTMSessionFetcherServiceProtocol + #define GTMBridgeAssertValidSelector GTMSessionFetcherAssertValidSelector + #define GTMBridgeCookieStorage GTMSessionCookieStorage + #define GTMBridgeCleanedUserAgentString GTMFetcherCleanedUserAgentString + #define GTMBridgeSystemVersionString GTMFetcherSystemVersionString + #define GTMBridgeApplicationIdentifier GTMFetcherApplicationIdentifier + #define kGTMBridgeFetcherStatusDomain kGTMSessionFetcherStatusDomain + #define kGTMBridgeFetcherStatusBadRequest GTMSessionFetcherStatusBadRequest + #else + // Macros to old fetcher class. + #define GTMBridgeFetcher GTMHTTPFetcher + #define GTMBridgeFetcherService GTMHTTPFetcherService + #define GTMBridgeFetcherServiceProtocol GTMHTTPFetcherServiceProtocol + #define GTMBridgeAssertValidSelector GTMAssertSelectorNilOrImplementedWithArgs + #define GTMBridgeCookieStorage GTMCookieStorage + #define GTMBridgeCleanedUserAgentString GTMCleanedUserAgentString + #define GTMBridgeSystemVersionString GTMSystemVersionString + #define GTMBridgeApplicationIdentifier GTMApplicationIdentifier + #define kGTMBridgeFetcherStatusDomain kGTMHTTPFetcherStatusDomain + #define kGTMBridgeFetcherStatusBadRequest kGTMHTTPFetcherStatusBadRequest + #endif // GTM_USE_SESSION_FETCHER +#endif + +GTM_ASSUME_NONNULL_BEGIN + +// Notifications +// +// Fetch started and stopped, and fetch retry delay started and stopped. +extern NSString *const kGTMSessionFetcherStartedNotification; +extern NSString *const kGTMSessionFetcherStoppedNotification; +extern NSString *const kGTMSessionFetcherRetryDelayStartedNotification; +extern NSString *const kGTMSessionFetcherRetryDelayStoppedNotification; + +// Completion handler notification. This is intended for use by code capturing +// and replaying fetch requests and results for testing. For fetches where +// destinationFileURL or accumulateDataBlock is set for the fetcher, the data +// will be nil for successful fetches. +// +// This notification is posted on the main thread. +extern NSString *const kGTMSessionFetcherCompletionInvokedNotification; +extern NSString *const kGTMSessionFetcherCompletionDataKey; +extern NSString *const kGTMSessionFetcherCompletionErrorKey; + +// Constants for NSErrors created by the fetcher (excluding server status errors, +// and error objects originating in the OS.) +extern NSString *const kGTMSessionFetcherErrorDomain; + +// The fetcher turns server error status values (3XX, 4XX, 5XX) into NSErrors +// with domain kGTMSessionFetcherStatusDomain. +// +// Any server response body data accompanying the status error is added to the +// userInfo dictionary with key kGTMSessionFetcherStatusDataKey. +extern NSString *const kGTMSessionFetcherStatusDomain; +extern NSString *const kGTMSessionFetcherStatusDataKey; +extern NSString *const kGTMSessionFetcherStatusDataContentTypeKey; + +// When a fetch fails with an error, these keys are included in the error userInfo +// dictionary if retries were attempted. +extern NSString *const kGTMSessionFetcherNumberOfRetriesDoneKey; +extern NSString *const kGTMSessionFetcherElapsedIntervalWithRetriesKey; + +// Background session support requires access to NSUserDefaults. +// If [NSUserDefaults standardUserDefaults] doesn't yield the correct NSUserDefaults for your usage, +// ie for an App Extension, then implement this class/method to return the correct NSUserDefaults. +// https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW6 +@interface GTMSessionFetcherUserDefaultsFactory : NSObject + ++ (NSUserDefaults *)fetcherUserDefaults; + +@end + +#ifdef __cplusplus +} +#endif + +typedef NS_ENUM(NSInteger, GTMSessionFetcherError) { + GTMSessionFetcherErrorDownloadFailed = -1, + GTMSessionFetcherErrorUploadChunkUnavailable = -2, + GTMSessionFetcherErrorBackgroundExpiration = -3, + GTMSessionFetcherErrorBackgroundFetchFailed = -4, + GTMSessionFetcherErrorInsecureRequest = -5, + GTMSessionFetcherErrorTaskCreationFailed = -6, +}; + +typedef NS_ENUM(NSInteger, GTMSessionFetcherStatus) { + // Standard http status codes. + GTMSessionFetcherStatusNotModified = 304, + GTMSessionFetcherStatusBadRequest = 400, + GTMSessionFetcherStatusUnauthorized = 401, + GTMSessionFetcherStatusForbidden = 403, + GTMSessionFetcherStatusPreconditionFailed = 412 +}; + +#ifdef __cplusplus +extern "C" { +#endif + +@class GTMSessionCookieStorage; +@class GTMSessionFetcher; + +// The configuration block is for modifying the NSURLSessionConfiguration only. +// DO NOT change any fetcher properties in the configuration block. +typedef void (^GTMSessionFetcherConfigurationBlock)(GTMSessionFetcher *fetcher, + NSURLSessionConfiguration *configuration); +typedef void (^GTMSessionFetcherSystemCompletionHandler)(void); +typedef void (^GTMSessionFetcherCompletionHandler)(NSData * GTM_NULLABLE_TYPE data, + NSError * GTM_NULLABLE_TYPE error); +typedef void (^GTMSessionFetcherBodyStreamProviderResponse)(NSInputStream *bodyStream); +typedef void (^GTMSessionFetcherBodyStreamProvider)(GTMSessionFetcherBodyStreamProviderResponse response); +typedef void (^GTMSessionFetcherDidReceiveResponseDispositionBlock)(NSURLSessionResponseDisposition disposition); +typedef void (^GTMSessionFetcherDidReceiveResponseBlock)(NSURLResponse *response, + GTMSessionFetcherDidReceiveResponseDispositionBlock dispositionBlock); +typedef void (^GTMSessionFetcherChallengeDispositionBlock)(NSURLSessionAuthChallengeDisposition disposition, + NSURLCredential * GTM_NULLABLE_TYPE credential); +typedef void (^GTMSessionFetcherChallengeBlock)(GTMSessionFetcher *fetcher, + NSURLAuthenticationChallenge *challenge, + GTMSessionFetcherChallengeDispositionBlock dispositionBlock); +typedef void (^GTMSessionFetcherWillRedirectResponse)(NSURLRequest * GTM_NULLABLE_TYPE redirectedRequest); +typedef void (^GTMSessionFetcherWillRedirectBlock)(NSHTTPURLResponse *redirectResponse, + NSURLRequest *redirectRequest, + GTMSessionFetcherWillRedirectResponse response); +typedef void (^GTMSessionFetcherAccumulateDataBlock)(NSData * GTM_NULLABLE_TYPE buffer); +typedef void (^GTMSessionFetcherSimulateByteTransferBlock)(NSData * GTM_NULLABLE_TYPE buffer, + int64_t bytesWritten, + int64_t totalBytesWritten, + int64_t totalBytesExpectedToWrite); +typedef void (^GTMSessionFetcherReceivedProgressBlock)(int64_t bytesWritten, + int64_t totalBytesWritten); +typedef void (^GTMSessionFetcherDownloadProgressBlock)(int64_t bytesWritten, + int64_t totalBytesWritten, + int64_t totalBytesExpectedToWrite); +typedef void (^GTMSessionFetcherSendProgressBlock)(int64_t bytesSent, + int64_t totalBytesSent, + int64_t totalBytesExpectedToSend); +typedef void (^GTMSessionFetcherWillCacheURLResponseResponse)(NSCachedURLResponse * GTM_NULLABLE_TYPE cachedResponse); +typedef void (^GTMSessionFetcherWillCacheURLResponseBlock)(NSCachedURLResponse *proposedResponse, + GTMSessionFetcherWillCacheURLResponseResponse responseBlock); +typedef void (^GTMSessionFetcherRetryResponse)(BOOL shouldRetry); +typedef void (^GTMSessionFetcherRetryBlock)(BOOL suggestedWillRetry, + NSError * GTM_NULLABLE_TYPE error, + GTMSessionFetcherRetryResponse response); + +typedef void (^GTMSessionFetcherTestResponse)(NSHTTPURLResponse * GTM_NULLABLE_TYPE response, + NSData * GTM_NULLABLE_TYPE data, + NSError * GTM_NULLABLE_TYPE error); +typedef void (^GTMSessionFetcherTestBlock)(GTMSessionFetcher *fetcherToTest, + GTMSessionFetcherTestResponse testResponse); + +void GTMSessionFetcherAssertValidSelector(id GTM_NULLABLE_TYPE obj, SEL GTM_NULLABLE_TYPE sel, ...); + +// Utility functions for applications self-identifying to servers via a +// user-agent header + +// The "standard" user agent includes the application identifier, taken from the bundle, +// followed by a space and the system version string. Pass nil to use +mainBundle as the source +// of the bundle identifier. +// +// Applications may use this as a starting point for their own user agent strings, perhaps +// with additional sections appended. Use GTMFetcherCleanedUserAgentString() below to +// clean up any string being added to the user agent. +NSString *GTMFetcherStandardUserAgentString(NSBundle * GTM_NULLABLE_TYPE bundle); + +// Make a generic name and version for the current application, like +// com.example.MyApp/1.2.3 relying on the bundle identifier and the +// CFBundleShortVersionString or CFBundleVersion. +// +// The bundle ID may be overridden as the base identifier string by +// adding to the bundle's Info.plist a "GTMUserAgentID" key. +// +// If no bundle ID or override is available, the process name preceded +// by "proc_" is used. +NSString *GTMFetcherApplicationIdentifier(NSBundle * GTM_NULLABLE_TYPE bundle); + +// Make an identifier like "MacOSX/10.7.1" or "iPod_Touch/4.1 hw/iPod1_1" +NSString *GTMFetcherSystemVersionString(void); + +// Make a parseable user-agent identifier from the given string, replacing whitespace +// and commas with underscores, and removing other characters that may interfere +// with parsing of the full user-agent string. +// +// For example, @"[My App]" would become @"My_App" +NSString *GTMFetcherCleanedUserAgentString(NSString *str); + +// Grab the data from an input stream. Since streams cannot be assumed to be rewindable, +// this may be destructive; the caller can try to rewind the stream (by setting the +// NSStreamFileCurrentOffsetKey property) or can just use the NSData to make a new +// NSInputStream. This function is intended to facilitate testing rather than be used in +// production. +// +// This function operates synchronously on the current thread. Depending on how the +// input stream is implemented, it may be appropriate to dispatch to a different +// queue before calling this function. +// +// Failure is indicated by a returned data value of nil. +NSData * GTM_NULLABLE_TYPE GTMDataFromInputStream(NSInputStream *inputStream, NSError **outError); + +#ifdef __cplusplus +} // extern "C" +#endif + + +#if !GTM_USE_SESSION_FETCHER +@protocol GTMHTTPFetcherServiceProtocol; +#endif + +// This protocol allows abstract references to the fetcher service, primarily for +// fetchers (which may be compiled without the fetcher service class present.) +// +// Apps should not need to use this protocol. +@protocol GTMSessionFetcherServiceProtocol <NSObject> +// This protocol allows us to call into the service without requiring +// GTMSessionFetcherService sources in this project + +@property(atomic, strong) dispatch_queue_t callbackQueue; + +- (BOOL)fetcherShouldBeginFetching:(GTMSessionFetcher *)fetcher; +- (void)fetcherDidCreateSession:(GTMSessionFetcher *)fetcher; +- (void)fetcherDidBeginFetching:(GTMSessionFetcher *)fetcher; +- (void)fetcherDidStop:(GTMSessionFetcher *)fetcher; + +- (GTMSessionFetcher *)fetcherWithRequest:(NSURLRequest *)request; +- (BOOL)isDelayingFetcher:(GTMSessionFetcher *)fetcher; + +@property(atomic, assign) BOOL reuseSession; +- (GTM_NULLABLE NSURLSession *)session; +- (GTM_NULLABLE NSURLSession *)sessionForFetcherCreation; +- (GTM_NULLABLE id<NSURLSessionDelegate>)sessionDelegate; +- (GTM_NULLABLE NSDate *)stoppedAllFetchersDate; + +// Methods for compatibility with the old GTMHTTPFetcher. +@property(readonly, strong, GTM_NULLABLE) NSOperationQueue *delegateQueue; + +@end // @protocol GTMSessionFetcherServiceProtocol + +#ifndef GTM_FETCHER_AUTHORIZATION_PROTOCOL +#define GTM_FETCHER_AUTHORIZATION_PROTOCOL 1 +@protocol GTMFetcherAuthorizationProtocol <NSObject> +@required +// This protocol allows us to call the authorizer without requiring its sources +// in this project. +- (void)authorizeRequest:(GTM_NULLABLE NSMutableURLRequest *)request + delegate:(id)delegate + didFinishSelector:(SEL)sel; + +- (void)stopAuthorization; + +- (void)stopAuthorizationForRequest:(NSURLRequest *)request; + +- (BOOL)isAuthorizingRequest:(NSURLRequest *)request; + +- (BOOL)isAuthorizedRequest:(NSURLRequest *)request; + +@property(strong, readonly, GTM_NULLABLE) NSString *userEmail; + +@optional + +// Indicate if authorization may be attempted. Even if this succeeds, +// authorization may fail if the user's permissions have been revoked. +@property(readonly) BOOL canAuthorize; + +// For development only, allow authorization of non-SSL requests, allowing +// transmission of the bearer token unencrypted. +@property(assign) BOOL shouldAuthorizeAllRequests; + +- (void)authorizeRequest:(GTM_NULLABLE NSMutableURLRequest *)request + completionHandler:(void (^)(NSError * GTM_NULLABLE_TYPE error))handler; + +#if GTM_USE_SESSION_FETCHER +@property (weak, GTM_NULLABLE) id<GTMSessionFetcherServiceProtocol> fetcherService; +#else +@property (weak, GTM_NULLABLE) id<GTMHTTPFetcherServiceProtocol> fetcherService; +#endif + +- (BOOL)primeForRefresh; + +@end +#endif // GTM_FETCHER_AUTHORIZATION_PROTOCOL + +#if GTM_BACKGROUND_TASK_FETCHING +// A protocol for an alternative target for messages from GTMSessionFetcher to UIApplication. +// Set the target using +[GTMSessionFetcher setSubstituteUIApplication:] +@protocol GTMUIApplicationProtocol <NSObject> +- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithName:(nullable NSString *)taskName + expirationHandler:(void(^ __nullable)(void))handler; +- (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier; +@end +#endif + +#pragma mark - + +// GTMSessionFetcher objects are used for async retrieval of an http get or post +// +// See additional comments at the beginning of this file +@interface GTMSessionFetcher : NSObject <NSURLSessionDelegate> + +// Create a fetcher +// +// fetcherWithRequest will return an autoreleased fetcher, but if +// the connection is successfully created, the connection should retain the +// fetcher for the life of the connection as well. So the caller doesn't have +// to retain the fetcher explicitly unless they want to be able to cancel it. ++ (instancetype)fetcherWithRequest:(GTM_NULLABLE NSURLRequest *)request; + +// Convenience methods that make a request, like +fetcherWithRequest ++ (instancetype)fetcherWithURL:(NSURL *)requestURL; ++ (instancetype)fetcherWithURLString:(NSString *)requestURLString; + +// Methods for creating fetchers to continue previous fetches. ++ (instancetype)fetcherWithDownloadResumeData:(NSData *)resumeData; ++ (GTM_NULLABLE instancetype)fetcherWithSessionIdentifier:(NSString *)sessionIdentifier; + +// Returns an array of currently active fetchers for background sessions, +// both restarted and newly created ones. ++ (GTM_NSArrayOf(GTMSessionFetcher *) *)fetchersForBackgroundSessions; + +// Designated initializer. +// +// Applications should create fetchers with a "fetcherWith..." method on a fetcher +// service or a class method, not with this initializer. +// +// The configuration should typically be nil. Applications needing to customize +// the configuration may do so by setting the configurationBlock property. +- (instancetype)initWithRequest:(GTM_NULLABLE NSURLRequest *)request + configuration:(GTM_NULLABLE NSURLSessionConfiguration *)configuration; + +// The fetcher's request. This may not be set after beginFetch has been invoked. The request +// may change due to redirects. +@property(strong, GTM_NULLABLE) NSURLRequest *request; + +// Set a header field value on the request. Header field value changes will not +// affect a fetch after the fetch has begun. +- (void)setRequestValue:(GTM_NULLABLE NSString *)value forHTTPHeaderField:(NSString *)field; + +// Data used for resuming a download task. +@property(atomic, readonly, GTM_NULLABLE) NSData *downloadResumeData; + +// The configuration; this must be set before the fetch begins. If no configuration is +// set or inherited from the fetcher service, then the fetcher uses an ephemeral config. +// +// NOTE: This property should typically be nil. Applications needing to customize +// the configuration should do so by setting the configurationBlock property. +// That allows the fetcher to pick an appropriate base configuration, with the +// application setting only the configuration properties it needs to customize. +@property(atomic, strong, GTM_NULLABLE) NSURLSessionConfiguration *configuration; + +// A block the client may use to customize the configuration used to create the session. +// +// This is called synchronously, either on the thread that begins the fetch or, during a retry, +// on the main thread. The configuration block may be called repeatedly if multiple fetchers are +// created. +// +// The configuration block is for modifying the NSURLSessionConfiguration only. +// DO NOT change any fetcher properties in the configuration block. Fetcher properties +// may be set in the fetcher service prior to fetcher creation, or on the fetcher prior +// to invoking beginFetch. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherConfigurationBlock configurationBlock; + +// A session is created as needed by the fetcher. A fetcher service object +// may maintain sessions for multiple fetches to the same host. +@property(atomic, strong, GTM_NULLABLE) NSURLSession *session; + +// The task in flight. +@property(atomic, readonly, GTM_NULLABLE) NSURLSessionTask *sessionTask; + +// The background session identifier. +@property(atomic, readonly, GTM_NULLABLE) NSString *sessionIdentifier; + +// Indicates a fetcher created to finish a background session task. +@property(atomic, readonly) BOOL wasCreatedFromBackgroundSession; + +// Additional user-supplied data to encode into the session identifier. Since session identifier +// length limits are unspecified, this should be kept small. Key names beginning with an underscore +// are reserved for use by the fetcher. +@property(atomic, strong, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, NSString *) *sessionUserInfo; + +// The human-readable description to be assigned to the task. +@property(atomic, copy, GTM_NULLABLE) NSString *taskDescription; + +// The priority assigned to the task, if any. Use NSURLSessionTaskPriorityLow, +// NSURLSessionTaskPriorityDefault, or NSURLSessionTaskPriorityHigh. +@property(atomic, assign) float taskPriority; + +// The fetcher encodes information used to resume a session in the session identifier. +// This method, intended for internal use returns the encoded information. The sessionUserInfo +// dictionary is stored as identifier metadata. +- (GTM_NULLABLE GTM_NSDictionaryOf(NSString *, NSString *) *)sessionIdentifierMetadata; + +#if TARGET_OS_IPHONE && !TARGET_OS_WATCH +// The app should pass to this method the completion handler passed in the app delegate method +// application:handleEventsForBackgroundURLSession:completionHandler: ++ (void)application:(UIApplication *)application + handleEventsForBackgroundURLSession:(NSString *)identifier + completionHandler:(GTMSessionFetcherSystemCompletionHandler)completionHandler; +#endif + +// Indicate that a newly created session should be a background session. +// A new session identifier will be created by the fetcher. +// +// Warning: The only thing background sessions are for is rare download +// of huge, batched files of data. And even just for those, there's a lot +// of pain and hackery needed to get transfers to actually happen reliably +// with background sessions. +// +// Don't try to upload or download in many background sessions, since the system +// will impose an exponentially increasing time penalty to prevent the app from +// getting too much background execution time. +// +// References: +// +// "Moving to Fewer, Larger Transfers" +// https://forums.developer.apple.com/thread/14853 +// +// "NSURLSession’s Resume Rate Limiter" +// https://forums.developer.apple.com/thread/14854 +// +// "Background Session Task state persistence" +// https://forums.developer.apple.com/thread/11554 +// +@property(assign) BOOL useBackgroundSession; + +// Indicates if the fetcher was started using a background session. +@property(atomic, readonly, getter=isUsingBackgroundSession) BOOL usingBackgroundSession; + +// Indicates if uploads should use an upload task. This is always set for file or stream-provider +// bodies, but may be set explicitly for NSData bodies. +@property(atomic, assign) BOOL useUploadTask; + +// Indicates that the fetcher is using a session that may be shared with other fetchers. +@property(atomic, readonly) BOOL canShareSession; + +// By default, the fetcher allows only secure (https) schemes unless this +// property is set, or the GTM_ALLOW_INSECURE_REQUESTS build flag is set. +// +// For example, during debugging when fetching from a development server that lacks SSL support, +// this may be set to @[ @"http" ], or when the fetcher is used to retrieve local files, +// this may be set to @[ @"file" ]. +// +// This should be left as nil for release builds to avoid creating the opportunity for +// leaking private user behavior and data. If a server is providing insecure URLs +// for fetching by the client app, report the problem as server security & privacy bug. +// +// For builds with the iOS 9/OS X 10.11 and later SDKs, this property is required only when +// the app specifies NSAppTransportSecurity/NSAllowsArbitraryLoads in the main bundle's Info.plist. +@property(atomic, copy, GTM_NULLABLE) GTM_NSArrayOf(NSString *) *allowedInsecureSchemes; + +// By default, the fetcher prohibits localhost requests unless this property is set, +// or the GTM_ALLOW_INSECURE_REQUESTS build flag is set. +// +// For localhost requests, the URL scheme is not checked when this property is set. +// +// For builds with the iOS 9/OS X 10.11 and later SDKs, this property is required only when +// the app specifies NSAppTransportSecurity/NSAllowsArbitraryLoads in the main bundle's Info.plist. +@property(atomic, assign) BOOL allowLocalhostRequest; + +// By default, the fetcher requires valid server certs. This may be bypassed +// temporarily for development against a test server with an invalid cert. +@property(atomic, assign) BOOL allowInvalidServerCertificates; + +// Cookie storage object for this fetcher. If nil, the fetcher will use a static cookie +// storage instance shared among fetchers. If this fetcher was created by a fetcher service +// object, it will be set to use the service object's cookie storage. See Cookies section above for +// the full discussion. +// +// Because as of Jan 2014 standalone instances of NSHTTPCookieStorage do not actually +// store any cookies (Radar 15735276) we use our own subclass, GTMSessionCookieStorage, +// to hold cookies in memory. +@property(atomic, strong, GTM_NULLABLE) NSHTTPCookieStorage *cookieStorage; + +// Setting the credential is optional; it is used if the connection receives +// an authentication challenge. +@property(atomic, strong, GTM_NULLABLE) NSURLCredential *credential; + +// Setting the proxy credential is optional; it is used if the connection +// receives an authentication challenge from a proxy. +@property(atomic, strong, GTM_NULLABLE) NSURLCredential *proxyCredential; + +// If body data, body file URL, or body stream provider is not set, then a GET request +// method is assumed. +@property(atomic, strong, GTM_NULLABLE) NSData *bodyData; + +// File to use as the request body. This forces use of an upload task. +@property(atomic, strong, GTM_NULLABLE) NSURL *bodyFileURL; + +// Length of body to send, expected or actual. +@property(atomic, readonly) int64_t bodyLength; + +// The body stream provider may be called repeatedly to provide a body. +// Setting a body stream provider forces use of an upload task. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherBodyStreamProvider bodyStreamProvider; + +// Object to add authorization to the request, if needed. +// +// This may not be changed once beginFetch has been invoked. +@property(atomic, strong, GTM_NULLABLE) id<GTMFetcherAuthorizationProtocol> authorizer; + +// The service object that created and monitors this fetcher, if any. +@property(atomic, strong) id<GTMSessionFetcherServiceProtocol> service; + +// The host, if any, used to classify this fetcher in the fetcher service. +@property(atomic, copy, GTM_NULLABLE) NSString *serviceHost; + +// The priority, if any, used for starting fetchers in the fetcher service. +// +// Lower values are higher priority; the default is 0, and values may +// be negative or positive. This priority affects only the start order of +// fetchers that are being delayed by a fetcher service when the running fetchers +// exceeds the service's maxRunningFetchersPerHost. A priority of NSIntegerMin will +// exempt this fetcher from delay. +@property(atomic, assign) NSInteger servicePriority; + +// The delegate's optional didReceiveResponse block may be used to inspect or alter +// the session task response. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherDidReceiveResponseBlock didReceiveResponseBlock; + +// The delegate's optional challenge block may be used to inspect or alter +// the session task challenge. +// +// If this block is not set, the fetcher's default behavior for the NSURLSessionTask +// didReceiveChallenge: delegate method is to use the fetcher's respondToChallenge: method +// which relies on the fetcher's credential and proxyCredential properties. +// +// Warning: This may be called repeatedly if the challenge fails. Check +// challenge.previousFailureCount to identify repeated invocations. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherChallengeBlock challengeBlock; + +// The delegate's optional willRedirect block may be used to inspect or alter +// the redirection. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherWillRedirectBlock willRedirectBlock; + +// The optional send progress block reports body bytes uploaded. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherSendProgressBlock sendProgressBlock; + +// The optional accumulate block may be set by clients wishing to accumulate data +// themselves rather than let the fetcher append each buffer to an NSData. +// +// When this is called with nil data (such as on redirect) the client +// should empty its accumulation buffer. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherAccumulateDataBlock accumulateDataBlock; + +// The optional received progress block may be used to monitor data +// received from a data task. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherReceivedProgressBlock receivedProgressBlock; + +// The delegate's optional downloadProgress block may be used to monitor download +// progress in writing to disk. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherDownloadProgressBlock downloadProgressBlock; + +// The delegate's optional willCacheURLResponse block may be used to alter the cached +// NSURLResponse. The user may prevent caching by passing nil to the block's response. +// +// This is called on the callback queue. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherWillCacheURLResponseBlock willCacheURLResponseBlock; + +// Enable retrying; see comments at the top of this file. Setting +// retryEnabled=YES resets the min and max retry intervals. +@property(atomic, assign, getter=isRetryEnabled) BOOL retryEnabled; + +// Retry block is optional for retries. +// +// If present, this block should call the response block with YES to cause a retry or NO to end the +// fetch. +// See comments at the top of this file. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherRetryBlock retryBlock; + +// Retry intervals must be strictly less than maxRetryInterval, else +// they will be limited to maxRetryInterval and no further retries will +// be attempted. Setting maxRetryInterval to 0.0 will reset it to the +// default value, 60 seconds for downloads and 600 seconds for uploads. +@property(atomic, assign) NSTimeInterval maxRetryInterval; + +// Starting retry interval. Setting minRetryInterval to 0.0 will reset it +// to a random value between 1.0 and 2.0 seconds. Clients should normally not +// set this except for unit testing. +@property(atomic, assign) NSTimeInterval minRetryInterval; + +// Multiplier used to increase the interval between retries, typically 2.0. +// Clients should not need to set this. +@property(atomic, assign) double retryFactor; + +// Number of retries attempted. +@property(atomic, readonly) NSUInteger retryCount; + +// Interval delay to precede next retry. +@property(atomic, readonly) NSTimeInterval nextRetryInterval; + +#if GTM_BACKGROUND_TASK_FETCHING +// Skip use of a UIBackgroundTask, thus requiring fetches to complete when the app is in the +// foreground. +// +// Targets should define GTM_BACKGROUND_TASK_FETCHING to 0 to avoid use of a UIBackgroundTask +// on iOS to allow fetches to complete in the background. This property is available when +// it's not practical to set the preprocessor define. +@property(atomic, assign) BOOL skipBackgroundTask; +#endif // GTM_BACKGROUND_TASK_FETCHING + +// Begin fetching the request +// +// The delegate may optionally implement the callback or pass nil for the selector or handler. +// +// The delegate and all callback blocks are retained between the beginFetch call until after the +// finish callback, or until the fetch is stopped. +// +// An error is passed to the callback for server statuses 300 or +// higher, with the status stored as the error object's code. +// +// finishedSEL has a signature like: +// - (void)fetcher:(GTMSessionFetcher *)fetcher +// finishedWithData:(NSData *)data +// error:(NSError *)error; +// +// If the application has specified a destinationFileURL or an accumulateDataBlock +// for the fetcher, the data parameter passed to the callback will be nil. + +- (void)beginFetchWithDelegate:(GTM_NULLABLE id)delegate + didFinishSelector:(GTM_NULLABLE SEL)finishedSEL; + +- (void)beginFetchWithCompletionHandler:(GTM_NULLABLE GTMSessionFetcherCompletionHandler)handler; + +// Returns YES if this fetcher is in the process of fetching a URL. +@property(atomic, readonly, getter=isFetching) BOOL fetching; + +// Cancel the fetch of the request that's currently in progress. The completion handler +// will not be called. +- (void)stopFetching; + +// A block to be called when the fetch completes. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherCompletionHandler completionHandler; + +// A block to be called if download resume data becomes available. +@property(atomic, strong, GTM_NULLABLE) void (^resumeDataBlock)(NSData *); + +// Return the status code from the server response. +@property(atomic, readonly) NSInteger statusCode; + +// Return the http headers from the response. +@property(atomic, strong, readonly, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, NSString *) *responseHeaders; + +// The response, once it's been received. +@property(atomic, strong, readonly, GTM_NULLABLE) NSURLResponse *response; + +// Bytes downloaded so far. +@property(atomic, readonly) int64_t downloadedLength; + +// Buffer of currently-downloaded data, if available. +@property(atomic, readonly, strong, GTM_NULLABLE) NSData *downloadedData; + +// Local path to which the downloaded file will be moved. +// +// If a file already exists at the path, it will be overwritten. +// Will create the enclosing folders if they are not present. +@property(atomic, strong, GTM_NULLABLE) NSURL *destinationFileURL; + +// The time this fetcher originally began fetching. This is useful as a time +// barrier for ignoring irrelevant fetch notifications or callbacks. +@property(atomic, strong, readonly, GTM_NULLABLE) NSDate *initialBeginFetchDate; + +// userData is retained solely for the convenience of the client. +@property(atomic, strong, GTM_NULLABLE) id userData; + +// Stored property values are retained solely for the convenience of the client. +@property(atomic, copy, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, id) *properties; + +- (void)setProperty:(GTM_NULLABLE id)obj forKey:(NSString *)key; // Pass nil for obj to remove the property. +- (GTM_NULLABLE id)propertyForKey:(NSString *)key; + +- (void)addPropertiesFromDictionary:(GTM_NSDictionaryOf(NSString *, id) *)dict; + +// Comments are useful for logging, so are strongly recommended for each fetcher. +@property(atomic, copy, GTM_NULLABLE) NSString *comment; + +- (void)setCommentWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); + +// Log of request and response, if logging is enabled +@property(atomic, copy, GTM_NULLABLE) NSString *log; + +// Callbacks are run on this queue. If none is supplied, the main queue is used. +@property(atomic, strong, GTM_NULL_RESETTABLE) dispatch_queue_t callbackQueue; + +// The queue used internally by the session to invoke its delegate methods in the fetcher. +// +// Application callbacks are always called by the fetcher on the callbackQueue above, +// not on this queue. Apps should generally not change this queue. +// +// The default delegate queue is the main queue. +// +// This value is ignored after the session has been created, so this +// property should be set in the fetcher service rather in the fetcher as it applies +// to a shared session. +@property(atomic, strong, GTM_NULL_RESETTABLE) NSOperationQueue *sessionDelegateQueue; + +// Spin the run loop or sleep the thread, discarding events, until the fetch has completed. +// +// This is only for use in testing or in tools without a user interface. +// +// Note: Synchronous fetches should never be used by shipping apps; they are +// sufficient reason for rejection from the app store. +// +// Returns NO if timed out. +- (BOOL)waitForCompletionWithTimeout:(NSTimeInterval)timeoutInSeconds; + +// Test block is optional for testing. +// +// If present, this block will cause the fetcher to skip starting the session, and instead +// use the test block response values when calling the completion handler and delegate code. +// +// Test code can set this on the fetcher or on the fetcher service. For testing libraries +// that use a fetcher without exposing either the fetcher or the fetcher service, the global +// method setGlobalTestBlock: will set the block for all fetchers that do not have a test +// block set. +// +// The test code can pass nil for all response parameters to indicate that the fetch +// should proceed. +// +// Applications can exclude test block support by setting GTM_DISABLE_FETCHER_TEST_BLOCK. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherTestBlock testBlock; + ++ (void)setGlobalTestBlock:(GTM_NULLABLE GTMSessionFetcherTestBlock)block; + +// When using the testBlock, |testBlockAccumulateDataChunkCount| is the desired number of chunks to +// divide the response data into if the client has streaming enabled. The data will be divided up to +// |testBlockAccumulateDataChunkCount| chunks; however, the exact amount may vary depending on the +// size of the response data (e.g. a 1-byte response can only be divided into one chunk). +@property(atomic, readwrite) NSUInteger testBlockAccumulateDataChunkCount; + +#if GTM_BACKGROUND_TASK_FETCHING +// For testing or to override UIApplication invocations, apps may specify an alternative +// target for messages to UIApplication. ++ (void)setSubstituteUIApplication:(nullable id<GTMUIApplicationProtocol>)substituteUIApplication; ++ (nullable id<GTMUIApplicationProtocol>)substituteUIApplication; +#endif // GTM_BACKGROUND_TASK_FETCHING + +// Exposed for testing. ++ (GTMSessionCookieStorage *)staticCookieStorage; ++ (BOOL)appAllowsInsecureRequests; + +#if STRIP_GTM_FETCH_LOGGING +// If logging is stripped, provide a stub for the main method +// for controlling logging. ++ (void)setLoggingEnabled:(BOOL)flag; ++ (BOOL)isLoggingEnabled; + +#else + +// These methods let an application log specific body text, such as the text description of a binary +// request or response. The application should set the fetcher to defer response body logging until +// the response has been received and the log response body has been set by the app. For example: +// +// fetcher.logRequestBody = [binaryObject stringDescription]; +// fetcher.deferResponseBodyLogging = YES; +// [fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) { +// if (error == nil) { +// fetcher.logResponseBody = [[[MyThing alloc] initWithData:data] stringDescription]; +// } +// fetcher.deferResponseBodyLogging = NO; +// }]; + +@property(atomic, copy, GTM_NULLABLE) NSString *logRequestBody; +@property(atomic, assign) BOOL deferResponseBodyLogging; +@property(atomic, copy, GTM_NULLABLE) NSString *logResponseBody; + +// Internal logging support. +@property(atomic, readonly) NSData *loggedStreamData; +@property(atomic, assign) BOOL hasLoggedError; +@property(atomic, strong, GTM_NULLABLE) NSURL *redirectedFromURL; +- (void)appendLoggedStreamData:(NSData *)dataToAdd; +- (void)clearLoggedStreamData; + +#endif // STRIP_GTM_FETCH_LOGGING + +@end + +@interface GTMSessionFetcher (BackwardsCompatibilityOnly) +// Clients using GTMSessionFetcher should set the cookie storage explicitly themselves. +// This method is just for compatibility with the old GTMHTTPFetcher class. +- (void)setCookieStorageMethod:(NSInteger)method; +@end + +// Until we can just instantiate NSHTTPCookieStorage for local use, we'll +// implement all the public methods ourselves. This stores cookies only in +// memory. Additional methods are provided for testing. +// +// iOS 9/OS X 10.11 added +[NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:] +// which may also be used to create cookie storage. +@interface GTMSessionCookieStorage : NSHTTPCookieStorage + +// Add the array off cookies to the storage, replacing duplicates. +// Also removes expired cookies from the storage. +- (void)setCookies:(GTM_NULLABLE GTM_NSArrayOf(NSHTTPCookie *) *)cookies; + +- (void)removeAllCookies; + +@end + +// Macros to monitor synchronization blocks in debug builds. +// These report problems using GTMSessionCheckDebug. +// +// GTMSessionMonitorSynchronized Start monitoring a top-level-only +// @sync scope. +// GTMSessionMonitorRecursiveSynchronized Start monitoring a top-level or +// recursive @sync scope. +// GTMSessionCheckSynchronized Verify that the current execution +// is inside a @sync scope. +// GTMSessionCheckNotSynchronized Verify that the current execution +// is not inside a @sync scope. +// +// Example usage: +// +// - (void)myExternalMethod { +// @synchronized(self) { +// GTMSessionMonitorSynchronized(self) +// +// - (void)myInternalMethod { +// GTMSessionCheckSynchronized(self); +// +// - (void)callMyCallbacks { +// GTMSessionCheckNotSynchronized(self); +// +// GTMSessionCheckNotSynchronized is available for verifying the code isn't +// in a deadlockable @sync state when posting notifications and invoking +// callbacks. Don't use GTMSessionCheckNotSynchronized immediately before a +// @sync scope; the normal recursiveness check of GTMSessionMonitorSynchronized +// can catch those. + +#ifdef __OBJC__ +// If asserts are entirely no-ops, the synchronization monitor is just a bunch +// of counting code that doesn't report exceptional circumstances in any way. +// Only build the synchronization monitor code if NS_BLOCK_ASSERTIONS is not +// defined or asserts are being logged instead. +#if DEBUG && (!defined(NS_BLOCK_ASSERTIONS) || GTMSESSION_ASSERT_AS_LOG) + #define __GTMSessionMonitorSynchronizedVariableInner(varname, counter) \ + varname ## counter + #define __GTMSessionMonitorSynchronizedVariable(varname, counter) \ + __GTMSessionMonitorSynchronizedVariableInner(varname, counter) + + #define GTMSessionMonitorSynchronized(obj) \ + NS_VALID_UNTIL_END_OF_SCOPE id \ + __GTMSessionMonitorSynchronizedVariable(__monitor, __COUNTER__) = \ + [[GTMSessionSyncMonitorInternal alloc] initWithSynchronizationObject:obj \ + allowRecursive:NO \ + functionName:__func__] + + #define GTMSessionMonitorRecursiveSynchronized(obj) \ + NS_VALID_UNTIL_END_OF_SCOPE id \ + __GTMSessionMonitorSynchronizedVariable(__monitor, __COUNTER__) = \ + [[GTMSessionSyncMonitorInternal alloc] initWithSynchronizationObject:obj \ + allowRecursive:YES \ + functionName:__func__] + + #define GTMSessionCheckSynchronized(obj) { \ + GTMSESSION_ASSERT_DEBUG( \ + [GTMSessionSyncMonitorInternal functionsHoldingSynchronizationOnObject:obj], \ + @"GTMSessionCheckSynchronized(" #obj ") failed: not sync'd" \ + @" on " #obj " in %s. Call stack:\n%@", \ + __func__, [NSThread callStackSymbols]); \ + } + + #define GTMSessionCheckNotSynchronized(obj) { \ + GTMSESSION_ASSERT_DEBUG( \ + ![GTMSessionSyncMonitorInternal functionsHoldingSynchronizationOnObject:obj], \ + @"GTMSessionCheckNotSynchronized(" #obj ") failed: was sync'd" \ + @" on " #obj " in %s by %@. Call stack:\n%@", __func__, \ + [GTMSessionSyncMonitorInternal functionsHoldingSynchronizationOnObject:obj], \ + [NSThread callStackSymbols]); \ + } + +// GTMSessionSyncMonitorInternal is a private class that keeps track of the +// beginning and end of synchronized scopes. +// +// This class should not be used directly, but only via the +// GTMSessionMonitorSynchronized macro. +@interface GTMSessionSyncMonitorInternal : NSObject +- (instancetype)initWithSynchronizationObject:(id)object + allowRecursive:(BOOL)allowRecursive + functionName:(const char *)functionName; +// Return the names of the functions that hold sync on the object, or nil if none. ++ (NSArray *)functionsHoldingSynchronizationOnObject:(id)object; +@end + +#else + #define GTMSessionMonitorSynchronized(obj) do { } while (0) + #define GTMSessionMonitorRecursiveSynchronized(obj) do { } while (0) + #define GTMSessionCheckSynchronized(obj) do { } while (0) + #define GTMSessionCheckNotSynchronized(obj) do { } while (0) +#endif // !DEBUG +#endif // __OBJC__ + + +GTM_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherLogging.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherLogging.h new file mode 100644 index 000000000..5ccea78e5 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherLogging.h @@ -0,0 +1,112 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GTMSessionFetcher.h" + +// GTM HTTP Logging +// +// All traffic using GTMSessionFetcher can be easily logged. Call +// +// [GTMSessionFetcher setLoggingEnabled:YES]; +// +// to begin generating log files. +// +// Unless explicitly set by the application using +setLoggingDirectory:, +// logs are put into a default directory, located at: +// * macOS: ~/Desktop/GTMHTTPDebugLogs +// * iOS simulator: ~/GTMHTTPDebugLogs (in application sandbox) +// * iOS device: ~/Documents/GTMHTTPDebugLogs (in application sandbox) +// +// Tip: use the Finder's "Sort By Date" to find the most recent logs. +// +// Each run of an application gets a separate set of log files. An html +// file is generated to simplify browsing the run's http transactions. +// The html file includes javascript links for inline viewing of uploaded +// and downloaded data. +// +// A symlink is created in the logs folder to simplify finding the html file +// for the latest run of the application; the symlink is called +// +// AppName_http_log_newest.html +// +// For better viewing of XML logs, use Camino or Firefox rather than Safari. +// +// Each fetcher may be given a comment to be inserted as a label in the logs, +// such as +// [fetcher setCommentWithFormat:@"retrieve item %@", itemName]; +// +// Projects may define STRIP_GTM_FETCH_LOGGING to remove logging code. + +#if !STRIP_GTM_FETCH_LOGGING + +@interface GTMSessionFetcher (GTMSessionFetcherLogging) + +// Note: on macOS the default logs directory is ~/Desktop/GTMHTTPDebugLogs; on +// iOS simulators it will be the ~/GTMHTTPDebugLogs (in the app sandbox); on +// iOS devices it will be in ~/Documents/GTMHTTPDebugLogs (in the app sandbox). +// These directories will be created as needed, and are excluded from backups +// to iCloud and iTunes. +// +// If a custom directory is set, the directory should already exist. It is +// the application's responsibility to exclude any custom directory from +// backups, if desired. ++ (void)setLoggingDirectory:(NSString *)path; ++ (NSString *)loggingDirectory; + +// client apps can turn logging on and off ++ (void)setLoggingEnabled:(BOOL)isLoggingEnabled; ++ (BOOL)isLoggingEnabled; + +// client apps can turn off logging to a file if they want to only check +// the fetcher's log property ++ (void)setLoggingToFileEnabled:(BOOL)isLoggingToFileEnabled; ++ (BOOL)isLoggingToFileEnabled; + +// client apps can optionally specify process name and date string used in +// log file names ++ (void)setLoggingProcessName:(NSString *)processName; ++ (NSString *)loggingProcessName; + ++ (void)setLoggingDateStamp:(NSString *)dateStamp; ++ (NSString *)loggingDateStamp; + +// client apps can specify the directory for the log for this specific run, +// typically to match the directory used by another fetcher class, like: +// +// [GTMSessionFetcher setLogDirectoryForCurrentRun:[GTMHTTPFetcher logDirectoryForCurrentRun]]; +// +// Setting this overrides the logging directory, process name, and date stamp when writing +// the log file. ++ (void)setLogDirectoryForCurrentRun:(NSString *)logDirectoryForCurrentRun; ++ (NSString *)logDirectoryForCurrentRun; + +// Prunes old log directories that have not been modified since the provided date. +// This will not delete the current run's log directory. ++ (void)deleteLogDirectoriesOlderThanDate:(NSDate *)date; + +// internal; called by fetcher +- (void)logFetchWithError:(NSError *)error; +- (NSInputStream *)loggedInputStreamForInputStream:(NSInputStream *)inputStream; +- (GTMSessionFetcherBodyStreamProvider)loggedStreamProviderForStreamProvider: + (GTMSessionFetcherBodyStreamProvider)streamProvider; + +// internal; accessors useful for viewing logs ++ (NSString *)processNameLogPrefix; ++ (NSString *)symlinkNameSuffix; ++ (NSString *)htmlFileName; + +@end + +#endif // !STRIP_GTM_FETCH_LOGGING diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherService.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherService.h new file mode 100644 index 000000000..fb743cad9 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionFetcherService.h @@ -0,0 +1,193 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// For best performance and convenient usage, fetchers should be generated by a common +// GTMSessionFetcherService instance, like +// +// _fetcherService = [[GTMSessionFetcherService alloc] init]; +// GTMSessionFetcher* myFirstFetcher = [_fetcherService fetcherWithRequest:request1]; +// GTMSessionFetcher* mySecondFetcher = [_fetcherService fetcherWithRequest:request2]; + +#import "GTMSessionFetcher.h" + +GTM_ASSUME_NONNULL_BEGIN + +// Notifications. + +// This notification indicates a reusable session has become invalid. It is intended mainly for the +// service's unit tests. +// +// The notification object is the fetcher service. +// The invalid session is provided via the userInfo kGTMSessionFetcherServiceSessionKey key. +extern NSString *const kGTMSessionFetcherServiceSessionBecameInvalidNotification; +extern NSString *const kGTMSessionFetcherServiceSessionKey; + +@interface GTMSessionFetcherService : NSObject<GTMSessionFetcherServiceProtocol> + +// Queues of delayed and running fetchers. Each dictionary contains arrays +// of GTMSessionFetcher *fetchers, keyed by NSString *host +@property(atomic, strong, readonly, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, NSArray *) *delayedFetchersByHost; +@property(atomic, strong, readonly, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, NSArray *) *runningFetchersByHost; + +// A max value of 0 means no fetchers should be delayed. +// The default limit is 10 simultaneous fetchers targeting each host. +// This does not apply to fetchers whose useBackgroundSession property is YES. Since services are +// not resurrected on an app relaunch, delayed fetchers would effectively be abandoned. +@property(atomic, assign) NSUInteger maxRunningFetchersPerHost; + +// Properties to be applied to each fetcher; see GTMSessionFetcher.h for descriptions +@property(atomic, strong, GTM_NULLABLE) NSURLSessionConfiguration *configuration; +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherConfigurationBlock configurationBlock; +@property(atomic, strong, GTM_NULLABLE) NSHTTPCookieStorage *cookieStorage; +@property(atomic, strong, GTM_NULL_RESETTABLE) dispatch_queue_t callbackQueue; +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherChallengeBlock challengeBlock; +@property(atomic, strong, GTM_NULLABLE) NSURLCredential *credential; +@property(atomic, strong) NSURLCredential *proxyCredential; +@property(atomic, copy, GTM_NULLABLE) GTM_NSArrayOf(NSString *) *allowedInsecureSchemes; +@property(atomic, assign) BOOL allowLocalhostRequest; +@property(atomic, assign) BOOL allowInvalidServerCertificates; +@property(atomic, assign, getter=isRetryEnabled) BOOL retryEnabled; +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherRetryBlock retryBlock; +@property(atomic, assign) NSTimeInterval maxRetryInterval; +@property(atomic, assign) NSTimeInterval minRetryInterval; +@property(atomic, copy, GTM_NULLABLE) GTM_NSDictionaryOf(NSString *, id) *properties; + +#if GTM_BACKGROUND_TASK_FETCHING +@property(atomic, assign) BOOL skipBackgroundTask; +#endif + +// A default useragent of GTMFetcherStandardUserAgentString(nil) will be given to each fetcher +// created by this service unless the request already has a user-agent header set. +// This default will be added starting with builds with the SDKs for OS X 10.11 and iOS 9. +// +// To use the configuration's default user agent, set this property to nil. +@property(atomic, copy, GTM_NULLABLE) NSString *userAgent; + +// The authorizer to attach to the created fetchers. If a specific fetcher should +// not authorize its requests, the fetcher's authorizer property may be set to nil +// before the fetch begins. +@property(atomic, strong, GTM_NULLABLE) id<GTMFetcherAuthorizationProtocol> authorizer; + +// Delegate queue used by the session when calling back to the fetcher. The default +// is the main queue. Changing this does not affect the queue used to call back to the +// application; that is specified by the callbackQueue property above. +@property(atomic, strong, GTM_NULL_RESETTABLE) NSOperationQueue *sessionDelegateQueue; + +// When enabled, indicates the same session should be used by subsequent fetchers. +// +// This is enabled by default. +@property(atomic, assign) BOOL reuseSession; + +// Sets the delay until an unused session is invalidated. +// The default interval is 60 seconds. +// +// If the interval is set to 0, then any reused session is not invalidated except by +// explicitly invoking -resetSession. Be aware that setting the interval to 0 thus +// causes the session's delegate to be retained until the session is explicitly reset. +@property(atomic, assign) NSTimeInterval unusedSessionTimeout; + +// If shouldReuseSession is enabled, this will force creation of a new session when future +// fetchers begin. +- (void)resetSession; + +// Create a fetcher +// +// These methods will return a fetcher. If successfully created, the connection +// will hold a strong reference to it for the life of the connection as well. +// So the caller doesn't have to hold onto the fetcher explicitly unless they +// want to be able to monitor or cancel it. +- (GTMSessionFetcher *)fetcherWithRequest:(NSURLRequest *)request; +- (GTMSessionFetcher *)fetcherWithURL:(NSURL *)requestURL; +- (GTMSessionFetcher *)fetcherWithURLString:(NSString *)requestURLString; + +// Common method for fetcher creation. +// +// -fetcherWithRequest:fetcherClass: may be overridden to customize creation of +// fetchers. This is the ONLY method in the GTMSessionFetcher library intended to +// be overridden. +- (id)fetcherWithRequest:(NSURLRequest *)request + fetcherClass:(Class)fetcherClass; + +- (BOOL)isDelayingFetcher:(GTMSessionFetcher *)fetcher; + +- (NSUInteger)numberOfFetchers; // running + delayed fetchers +- (NSUInteger)numberOfRunningFetchers; +- (NSUInteger)numberOfDelayedFetchers; + +// Return a list of all running or delayed fetchers. This includes fetchers created +// by the service which have been started and have not yet stopped. +// +// Returns an array of fetcher objects, or nil if none. +- (GTM_NULLABLE GTM_NSArrayOf(GTMSessionFetcher *) *)issuedFetchers; + +// Search for running or delayed fetchers with the specified URL. +// +// Returns an array of fetcher objects found, or nil if none found. +- (GTM_NULLABLE GTM_NSArrayOf(GTMSessionFetcher *) *)issuedFetchersWithRequestURL:(NSURL *)requestURL; + +- (void)stopAllFetchers; + +// Methods for use by the fetcher class only. +- (GTM_NULLABLE NSURLSession *)session; +- (GTM_NULLABLE NSURLSession *)sessionForFetcherCreation; +- (GTM_NULLABLE id<NSURLSessionDelegate>)sessionDelegate; +- (GTM_NULLABLE NSDate *)stoppedAllFetchersDate; + +// The testBlock can inspect its fetcher parameter's request property to +// determine which fetcher is being faked. +@property(atomic, copy, GTM_NULLABLE) GTMSessionFetcherTestBlock testBlock; + +@end + +@interface GTMSessionFetcherService (TestingSupport) + +// Convenience methods to create a fetcher service for testing. +// +// Fetchers generated by this mock fetcher service will not perform any +// network operation, but will invoke callbacks and provide the supplied data +// or error to the completion handler. +// +// You can make more customized mocks by setting the test block property of the service +// or fetcher; the test block can inspect the fetcher's request or other properties. +// +// See the description of the testBlock property below. ++ (instancetype)mockFetcherServiceWithFakedData:(GTM_NULLABLE NSData *)fakedDataOrNil + fakedError:(GTM_NULLABLE NSError *)fakedErrorOrNil; ++ (instancetype)mockFetcherServiceWithFakedData:(GTM_NULLABLE NSData *)fakedDataOrNil + fakedResponse:(NSHTTPURLResponse *)fakedResponse + fakedError:(GTM_NULLABLE NSError *)fakedErrorOrNil; + +// Spin the run loop and discard events (or, if not on the main thread, just sleep the thread) +// until all running and delayed fetchers have completed. +// +// This is only for use in testing or in tools without a user interface. +// +// Synchronous fetches should never be done by shipping apps; they are +// sufficient reason for rejection from the app store. +// +// Returns NO if timed out. +- (BOOL)waitForCompletionOfAllFetchersWithTimeout:(NSTimeInterval)timeoutInSeconds; + +@end + +@interface GTMSessionFetcherService (BackwardsCompatibilityOnly) + +// Clients using GTMSessionFetcher should set the cookie storage explicitly themselves. +// This method is just for compatibility with the old fetcher. +@property(atomic, assign) NSInteger cookieStorageMethod; + +@end + +GTM_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionUploadFetcher.h b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionUploadFetcher.h new file mode 100644 index 000000000..a098ce9bf --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Headers/GTMSessionUploadFetcher.h @@ -0,0 +1,166 @@ +/* Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GTMSessionUploadFetcher implements Google's resumable upload protocol. + +// +// This subclass of GTMSessionFetcher simulates the series of fetches +// needed for chunked upload as a single fetch operation. +// +// Protocol document: TBD +// +// To the client, the only fetcher that exists is this class; the subsidiary +// fetchers needed for uploading chunks are not visible (though the most recent +// chunk fetcher may be accessed via the -activeFetcher or -chunkFetcher methods, and +// -responseHeaders and -statusCode reflect results from the most recent chunk +// fetcher.) +// +// Chunk fetchers are discarded as soon as they have completed. +// +// The protocol also allows for a cancellation notification request to be sent to the +// server to allow discarding of the currently uploaded data and this will be sent +// automatically upon calling stopFetching if the upload has already started. +// +// Note: Unlike the fetcher superclass, the methods of GTMSessionUploadFetcher should +// only be used from the main thread until further work is done to make this subclass +// thread-safe. + +#import "GTMSessionFetcher.h" +#import "GTMSessionFetcherService.h" + +GTM_ASSUME_NONNULL_BEGIN + +// The value to use for file size parameters when the file size is not yet known. +extern int64_t const kGTMSessionUploadFetcherUnknownFileSize; + +// Unless an application knows it needs a smaller chunk size, it should use the standard +// chunk size, which sends the entire file as a single chunk to minimize upload overhead. +// Setting an explicit chunk size that comfortably fits in memory is advisable for large +// uploads. +extern int64_t const kGTMSessionUploadFetcherStandardChunkSize; + +// When uploading requires data buffer allocations (such as uploading from an NSData or +// an NSFileHandle) this is the maximum buffer size that will be created by the fetcher. +extern int64_t const kGTMSessionUploadFetcherMaximumDemandBufferSize; + +// Notification that the upload location URL was provided by the server. +extern NSString *const kGTMSessionFetcherUploadLocationObtainedNotification; + +// Block to provide data during uploads. +// +// Response data may be allocated with dataWithBytesNoCopy:length:freeWhenDone: for efficiency, +// and released after the response block returns. +// +// If the length of the file being uploaded is unknown or already set, send +// kGTMSessionUploadFetcherUnknownFileSize for |fullUploadLength|. Otherwise, set |fullUploadLength| +// to its proper value. +// +// Pass nil as the data (and optionally an NSError) for a failure. +typedef void (^GTMSessionUploadFetcherDataProviderResponse)(NSData * GTM_NULLABLE_TYPE data, + int64_t fullUploadLength, + NSError * GTM_NULLABLE_TYPE error); +// Do not call the response with an NSData object with less data than the requested length unless +// you are passing the fullUploadLength to the fetcher for the first time and it is the last chunk +// of data in the file being uploaded. +typedef void (^GTMSessionUploadFetcherDataProvider)(int64_t offset, int64_t length, + GTMSessionUploadFetcherDataProviderResponse response); + +// Block to be notified about the final status of the cancellation request started in stopFetching. +// +// |fetcher| will be the cancel request that was sent to the server, or nil if stopFetching is not +// going to send a cancel request. If |fetcher| is provided, the other parameters correspond to the +// completion handler of the cancellation request fetcher. +typedef void (^GTMSessionUploadFetcherCancellationHandler)( + GTMSessionFetcher * GTM_NULLABLE_TYPE fetcher, + NSData * GTM_NULLABLE_TYPE data, + NSError * GTM_NULLABLE_TYPE error); + +@interface GTMSessionUploadFetcher : GTMSessionFetcher + +// Create an upload fetcher specifying either the request or the resume location URL, +// then set an upload data source using one of these: +// +// setUploadFileURL: +// setUploadDataLength:provider: +// setUploadFileHandle: +// setUploadData: + ++ (instancetype)uploadFetcherWithRequest:(NSURLRequest *)request + uploadMIMEType:(NSString *)uploadMIMEType + chunkSize:(int64_t)chunkSize + fetcherService:(GTM_NULLABLE GTMSessionFetcherService *)fetcherServiceOrNil; + ++ (instancetype)uploadFetcherWithLocation:(NSURL * GTM_NULLABLE_TYPE)uploadLocationURL + uploadMIMEType:(NSString *)uploadMIMEType + chunkSize:(int64_t)chunkSize + fetcherService:(GTM_NULLABLE GTMSessionFetcherService *)fetcherServiceOrNil; + +// Allows dataProviders for files of unknown length. Pass kGTMSessionUploadFetcherUnknownFileSize as +// |fullLength| if the length is unknown. +- (void)setUploadDataLength:(int64_t)fullLength + provider:(GTM_NULLABLE GTMSessionUploadFetcherDataProvider)block; + ++ (NSArray *)uploadFetchersForBackgroundSessions; ++ (GTM_NULLABLE instancetype)uploadFetcherForSessionIdentifier:(NSString *)sessionIdentifier; + +- (void)pauseFetching; +- (void)resumeFetching; +- (BOOL)isPaused; + +@property(atomic, strong, GTM_NULLABLE) NSURL *uploadLocationURL; +@property(atomic, strong, GTM_NULLABLE) NSData *uploadData; +@property(atomic, strong, GTM_NULLABLE) NSURL *uploadFileURL; +@property(atomic, strong, GTM_NULLABLE) NSFileHandle *uploadFileHandle; +@property(atomic, copy, readonly, GTM_NULLABLE) GTMSessionUploadFetcherDataProvider uploadDataProvider; +@property(atomic, copy) NSString *uploadMIMEType; +@property(atomic, assign) int64_t chunkSize; +@property(atomic, readonly, assign) int64_t currentOffset; + +// The fetcher for the current data chunk, if any +@property(atomic, strong, GTM_NULLABLE) GTMSessionFetcher *chunkFetcher; + +// The active fetcher is the current chunk fetcher, or the upload fetcher itself +// if no chunk fetcher has yet been created. +@property(atomic, readonly) GTMSessionFetcher *activeFetcher; + +// The last request made by an active fetcher. Useful for testing. +@property(atomic, readonly, GTM_NULLABLE) NSURLRequest *lastChunkRequest; + +// The status code from the most recently-completed fetch. +@property(atomic, assign) NSInteger statusCode; + +// Invoked as part of the stop fetching process. Invoked immediately if there is no upload in +// progress, otherwise invoked with the results of the attempt to notify the server that the +// upload will not continue. +// +// Unlike other callbacks, since this is related specifically to the stopFetching flow it is not +// cleared by stopFetching. It will instead clear itself after it is invoked or if the completion +// has occured before stopFetching is called. +@property(atomic, copy, GTM_NULLABLE) GTMSessionUploadFetcherCancellationHandler + cancellationHandler; + +// Exposed for testing only. +@property(atomic, readonly, GTM_NULLABLE) dispatch_queue_t delegateCallbackQueue; +@property(atomic, readonly, GTM_NULLABLE) GTMSessionFetcherCompletionHandler delegateCompletionHandler; + +@end + +@interface GTMSessionFetcher (GTMSessionUploadFetcherMethods) + +@property(readonly, GTM_NULLABLE) GTMSessionUploadFetcher *parentUploadFetcher; + +@end + +GTM_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Modules/module.modulemap new file mode 100644 index 000000000..725664065 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GTMSessionFetcher.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module GTMSessionFetcher { +umbrella header "GTMSessionFetcher.h" +export * +module * { export * } + link framework "Security" +} diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/GoogleAPIClientForREST b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/GoogleAPIClientForREST Binary files differnew file mode 100644 index 000000000..f994f5a41 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/GoogleAPIClientForREST diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBase64.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBase64.h new file mode 100644 index 000000000..78721564b --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBase64.h @@ -0,0 +1,29 @@ +/* Copyright (c) 2012 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +NSData * _Nullable GTLRDecodeBase64(NSString * _Nullable base64Str); +NSString * _Nullable GTLREncodeBase64(NSData * _Nullable data); + +// "Web-safe" encoding substitutes - and _ for + and / in the encoding table, +// per http://www.ietf.org/rfc/rfc4648.txt section 5. + +NSData * _Nullable GTLRDecodeWebSafeBase64(NSString * _Nullable base64Str); +NSString * _Nullable GTLREncodeWebSafeBase64(NSData * _Nullable data); + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchQuery.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchQuery.h new file mode 100644 index 000000000..0a318d05f --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchQuery.h @@ -0,0 +1,85 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Batch query documentation: +// https://github.com/google/google-api-objectivec-client-for-rest/wiki#batch-operations + +#import "GTLRQuery.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface GTLRBatchQuery : NSObject <GTLRQueryProtocol> + +/** + * Queries included in this batch. Each query should have a unique @c requestID. + */ +@property(atomic, copy, nullable) NSArray<GTLRQuery *> *queries; + +/** + * Flag indicating if query execution should skip authorization. Defaults to NO. + */ +@property(atomic, assign) BOOL shouldSkipAuthorization; + +/** + * Any additional HTTP headers for this batch. + * + * These headers override the same keys from the service object's + * @c additionalHTTPHeaders. + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalHTTPHeaders; + +/** + * Any additional URL query parameters to add to the batch query. + * + * These query parameters override the same keys from the service object's + * @c additionalURLQueryParameters + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalURLQueryParameters; + +/** + * The batch request multipart boundary, once determined. + */ +@property(atomic, copy, nullable) NSString *boundary; + +/** + * The brief string to identify this query in @c GTMSessionFetcher http logs. + * + * The default logging name for batch requests includes the API method names. + */ +@property(atomic, copy, nullable) NSString *loggingName; + +/** + * Constructor for a batch query, for use with @c addQuery: + */ ++ (instancetype)batchQuery; + +/** + * Constructor for a batch query, from an array of @c GTLRQuery objects. + */ ++ (instancetype)batchQueryWithQueries:(NSArray<GTLRQuery *> *)array; + +/** + * Add a single @c GTLRQuery to the batch. + */ +- (void)addQuery:(GTLRQuery *)query; + +/** + * Search the batch for a query with the specified ID. + */ +- (nullable GTLRQuery *)queryForRequestID:(NSString *)requestID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchResult.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchResult.h new file mode 100644 index 000000000..0cc7e3f95 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRBatchResult.h @@ -0,0 +1,78 @@ +/* Copyright (c) 2011 Google Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#import "GTLRObject.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GTLRErrorObject; + +/** + * A batch result includes a dictionary of successes, a dictionary of failures, and a dictionary of + * HTTP response headers. + * + * Dictionary keys are request ID strings; dictionary values are @c GTLRObject for + * successes, @c GTLRErrorObject for failures, @c NSDictionary for responseHeaders. + * + * For successes with no returned object (such as from delete operations), + * the object for the dictionary entry is @c NSNull. + * + * The original query for each result is available from the service ticket, as shown in + * the code snippet here. + * + * When the queries in the batch are unrelated, adding a @c completionBlock to each of + * the queries may be a simpler way to handle the batch results. + * + * @code + * NSDictionary *successes = batchResults.successes; + * for (NSString *requestID in successes) { + * GTLRObject *obj = successes[requestID]; + * GTLRQuery *query = [ticket queryForRequestID:requestID]; + * NSLog(@"Query %@ returned object %@", query, obj); + * } + * + * NSDictionary *failures = batchResults.failures; + * for (NSString *requestID in failures) { + * GTLRErrorObject *errorObj = failures[requestID]; + * GTLRQuery *query = [ticket queryForRequestID:requestID]; + * NSLog(@"Query %@ failed with error %@", query, errorObj); + * } + * @endcode + */ +@interface GTLRBatchResult : GTLRObject + +/** + * Object results of successful queries in the batch, keyed by request ID. + * + * Queries which do not return an object when successful have a @c NSNull value. + */ +@property(atomic, strong, nullable) NSDictionary<NSString *, __kindof GTLRObject *> *successes; + +/** + * Object results of unsuccessful queries in the batch, keyed by request ID. + */ +@property(atomic, strong, nullable) NSDictionary<NSString *, GTLRErrorObject *> *failures; + +/** + * Any HTTP response headers that were returned for a query request. Headers are optional therefore + * not all queries will have them. Query request with response headers are stored in a + * dictionary and keyed by request ID. + */ +@property(atomic, strong, nullable) + NSDictionary<NSString *, NSDictionary *> *responseHeaders; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDateTime.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDateTime.h new file mode 100644 index 000000000..c66de63ba --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDateTime.h @@ -0,0 +1,115 @@ +/* Copyright (c) 2011 Google Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#import <Foundation/Foundation.h> +#import "GTLRDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * An immutable class representing a date and optionally a time in UTC. + */ +@interface GTLRDateTime : NSObject <NSCopying> + +/** + * Constructor from a string representation. + */ ++ (nullable instancetype)dateTimeWithRFC3339String:(nullable NSString *)str; + +/** + * Constructor from a date and time representation. + */ ++ (instancetype)dateTimeWithDate:(NSDate *)date; + +/** + * Constructor from a date and time representation, along with an offset + * minutes value used when creating a RFC3339 string representation. + * + * The date value is independent of time zone; the offset affects how the + * date will be rendered as a string. + * + * The offsetMinutes may be initialized from a NSTimeZone as + * (timeZone.secondsFromGMT / 60) + */ ++ (instancetype)dateTimeWithDate:(NSDate *)date + offsetMinutes:(NSInteger)offsetMinutes; + +/** + * Constructor from a date for an all-day event. + * + * Use this constructor to create a @c GTLRDateTime that is "date only". + * + * @note @c hasTime will be set to NO. + */ ++ (instancetype)dateTimeForAllDayWithDate:(NSDate *)date; + +/** + * Constructor from date components. + */ ++ (instancetype)dateTimeWithDateComponents:(NSDateComponents *)date; + +/** + * The represented date and time. + * + * If @c hasTime is NO, the time is set to noon GMT so the date is valid for all time zones. + */ +@property(nonatomic, readonly) NSDate *date; + +/** + * The date and time as a RFC3339 string representation. + */ +@property(nonatomic, readonly) NSString *RFC3339String; + +/** + * The date and time as a RFC3339 string representation. + * + * This returns the same string as @c RFC3339String. + */ +@property(nonatomic, readonly) NSString *stringValue; + +/** + * The represented date and time as date components. + */ +@property(nonatomic, readonly, copy) NSDateComponents *dateComponents; + +/** + * The fraction of seconds represented, 0-999. + */ +@property(nonatomic, readonly) NSInteger milliseconds; + +/** + * The time offset displayed in the string representation, if any. + * + * If the offset is not nil, the date and time will be rendered as a string + * for the time zone indicated by the offset. + * + * An app may create a NSTimeZone for this with + * [NSTimeZone timeZoneForSecondsFromGMT:(offsetMinutes.integerValue * 60)] + */ +@property(nonatomic, readonly, nullable) NSNumber *offsetMinutes; + +/** + * Flag indicating if the object represents date only, or date with time. + */ +@property(nonatomic, readonly) BOOL hasTime; + +/** + * The calendar used by this class, Gregorian and UTC. + */ ++ (NSCalendar *)calendar; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDefines.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDefines.h new file mode 100644 index 000000000..726fbbdac --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDefines.h @@ -0,0 +1,109 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// GTLRDefines.h +// + +// Ensure Apple's conditionals we depend on are defined. +#import <TargetConditionals.h> +#import <AvailabilityMacros.h> + +// These can be redefined via a prefix if you are prefixing symbols to prefix +// the names used in strings. Something like: +// #define _HELPER(x) "MyPrefix" #x +// #define GTLR_CLASSNAME_STR(x) @_HELPER(x) +// #define GTLR_CLASSNAME_CSTR(x) _HELPER(x) +#ifndef GTLR_CLASSNAME_STR + #define _GTLR_CLASSNAME_HELPER(x) #x + #define GTLR_CLASSNAME_STR(x) @_GTLR_CLASSNAME_HELPER(x) + #define GTLR_CLASSNAME_CSTR(x) _GTLR_CLASSNAME_HELPER(x) +#endif + +// Provide a common definition for externing constants/functions +#if defined(__cplusplus) + #define GTLR_EXTERN extern "C" +#else + #define GTLR_EXTERN extern +#endif + +// +// GTLR_ASSERT defaults to bridging to NSAssert. This macro exists just in case +// it needs to be remapped. +// GTLR_DEBUG_ASSERT is similar, but compiles in only for debug builds +// + +#ifndef GTLR_ASSERT + // NSCAssert to avoid capturing self if used in a block. + #define GTLR_ASSERT(condition, ...) NSCAssert(condition, __VA_ARGS__) +#endif // GTLR_ASSERT + +#ifndef GTLR_DEBUG_ASSERT + #if DEBUG && !defined(NS_BLOCK_ASSERTIONS) + #define GTLR_DEBUG_ASSERT(condition, ...) GTLR_ASSERT(condition, __VA_ARGS__) + #elif DEBUG + // In DEBUG builds with assertions blocked, log to avoid unused variable warnings. + #define GTLR_DEBUG_ASSERT(condition, ...) if (!(condition)) { NSLog(__VA_ARGS__); } + #else + #define GTLR_DEBUG_ASSERT(condition, ...) do { } while (0) + #endif +#endif + +#ifndef GTLR_DEBUG_LOG + #if DEBUG + #define GTLR_DEBUG_LOG(...) NSLog(__VA_ARGS__) + #else + #define GTLR_DEBUG_LOG(...) do { } while (0) + #endif +#endif + +#ifndef GTLR_DEBUG_ASSERT_CURRENT_QUEUE + #define GTLR_ASSERT_CURRENT_QUEUE_DEBUG(targetQueue) \ + GTLR_DEBUG_ASSERT(0 == strcmp(GTLR_QUEUE_NAME(targetQueue), \ + GTLR_QUEUE_NAME(DISPATCH_CURRENT_QUEUE_LABEL)), \ + @"Current queue is %s (expected %s)", \ + GTLR_QUEUE_NAME(DISPATCH_CURRENT_QUEUE_LABEL), \ + GTLR_QUEUE_NAME(targetQueue)) + + #define GTLR_QUEUE_NAME(queue) \ + (strlen(dispatch_queue_get_label(queue)) > 0 ? dispatch_queue_get_label(queue) : "unnamed") +#endif // GTLR_ASSERT_CURRENT_QUEUE_DEBUG + +// Sanity check the min versions. + +#if (defined(TARGET_OS_TV) && TARGET_OS_TV) || (defined(TARGET_OS_WATCH) && TARGET_OS_WATCH) + // No min checks for these two. +#elif TARGET_OS_IPHONE + #if !defined(__IPHONE_9_0) || (__IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0) + #error "This project expects to be compiled with the iOS 9.0 SDK (or later)." + #endif + #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + #error "The minimum supported iOS version is 7.0." + #endif +#elif TARGET_OS_MAC + #if !defined(MAC_OS_X_VERSION_10_10) || (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10) + #error "This project expects to be compiled with the OS X 10.10 SDK (or later)." + #endif + #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 + #error "The minimum supported OS X version is 10.9." + #endif +#else + #error "Unknown target platform." +#endif + +// Version marker used to validate the generated sources against the library +// version. The will be changed any time the library makes a change that means +// past sources need to be regenerated. +#define GTLR_RUNTIME_VERSION 3000 diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDuration.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDuration.h new file mode 100644 index 000000000..58eba34c9 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRDuration.h @@ -0,0 +1,83 @@ +/* Copyright (c) 2016 Google Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#import <Foundation/Foundation.h> +#import "GTLRDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * An immutable class representing a string data type 'google-duration'. + * It is based off the protocol buffers definition: + * https://github.com/google/protobuf/blob/master/src/google/protobuf/duration.proto + */ +@interface GTLRDuration : NSObject <NSCopying> + +/** + * Signed seconds of the span of time. Must be from -315,576,000,000 + * to +315,576,000,000 inclusive. + **/ +@property(nonatomic, readonly) int64_t seconds; + +/** + * Signed fractions of a second at nanosecond resolution of the span + * of time. Durations less than one second are represented with a 0 + * `seconds` field and a positive or negative `nanos` field. For durations + * of one second or more, a non-zero value for the `nanos` field must be + * of the same sign as the `seconds` field. Must be from -999,999,999 + * to +999,999,999 inclusive. + **/ +@property(nonatomic, readonly) int32_t nanos; + +/** + * This duration expressed as a NSTimeInterval. + * + * @note: Not all second/nanos combinations can be represented in a + * NSTimeInterval, so this could be a lossy transform. + **/ +@property(nonatomic, readonly) NSTimeInterval timeInterval; + +/** + * Returns the string form used to send this data type in a JSON payload. + */ +@property(nonatomic, readonly) NSString *jsonString; + +/** + * Constructor for a new duration with the given seconds and nanoseconds. + * + * Will fail if seconds/nanos differ in sign or if nanos is more than one + * second. + **/ ++ (nullable instancetype)durationWithSeconds:(int64_t)seconds + nanos:(int32_t)nanos; + +/** + * Constructor for a new duration from the given string form. + * + * Will return nil if jsonString is invalid. + **/ ++ (nullable instancetype)durationWithJSONString:(nullable NSString *)jsonString; + +/** + * Constructor for a new duration from the NSTimeInterval. + * + * @note NSTimeInterval doesn't always express things as exactly as one might + * expect, so coverting from to integer seconds & nanos can reveal this. + **/ ++ (instancetype)durationWithTimeInterval:(NSTimeInterval)timeInterval; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRErrorObject.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRErrorObject.h new file mode 100644 index 000000000..8c5ac801f --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRErrorObject.h @@ -0,0 +1,116 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GTLRObject.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GTLRErrorObjectErrorItem; +@class GTLRErrorObjectDetail; + +/** + * This class wraps JSON responses (both V1 and V2 of Google JSON errors) and NSErrors. + * + * A GTLRErrorObject can be created using +objectWithJSON: or +objectWithFoundationError: + */ +@interface GTLRErrorObject : GTLRObject + +/** + * Convenience method for creating an error object from an NSError. + * + * @param error The @c NSError to be encapsulated by the @c GTLRErrorObject + * + * @return A @c GTLRErrorObject wrapping the NSError. + */ ++ (instancetype)objectWithFoundationError:(NSError *)error; + +/** + * Convenience utility for extracting the GTLRErrorObject that was used to create an NSError. + * + * @param foundationError The NSError that may have been obtained from a GTLRErrorObject. + * + * @return The GTLRErrorObject, nil if the error was not originally from a GTLRErrorObject. + */ ++ (nullable GTLRErrorObject *)underlyingObjectForError:(NSError *)foundationError; + +// +// V1 & V2 properties. +// + +/** + * The numeric error code. + */ +@property(nonatomic, strong, nullable) NSNumber *code; + +/** + * An error message string, typically provided by the API server. This is not localized, + * and its reliability depends on the API server. + */ +@property(nonatomic, strong, nullable) NSString *message; + +// +// V1 properties. +// + +/** + * Underlying errors that occurred on the server. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRErrorObjectErrorItem *> *errors; + +// +// V2 properties +// + +/** + * A status error string, defined by the API server, such as "NOT_FOUND". + */ +@property(nonatomic, strong, nullable) NSString *status; + +/** + * Additional diagnostic error details provided by the API server. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRErrorObjectDetail *> *details; + +/** + * An NSError, either underlying the error object or manufactured from the error object's + * properties. + */ +@property(nonatomic, readonly) NSError *foundationError; + +@end + +/** + * Class representing the items of the "errors" array inside the Google V1 error JSON. + * + * Client applications should not rely on the property values of these items. + */ +@interface GTLRErrorObjectErrorItem : GTLRObject +@property(nonatomic, strong, nullable) NSString *domain; +@property(nonatomic, strong, nullable) NSString *reason; +@property(nonatomic, strong, nullable) NSString *message; +@property(nonatomic, strong, nullable) NSString *location; +@end + +/** + * Class representing the items of the "details" array inside the Google V2 error JSON. + * + * Client applications should not rely on the property values of these items. + */ +@interface GTLRErrorObjectDetail : GTLRObject +@property(nonatomic, strong, nullable) NSString *type; +@property(nonatomic, strong, nullable) NSString *detail; +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRFramework.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRFramework.h new file mode 100644 index 000000000..ab94a4cbe --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRFramework.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GTLRDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +// Returns the version of the framework. Major and minor should +// match the bundle version in the Info.plist file. +// +// Pass NULL to ignore any of the parameters. + +void GTLRFrameworkVersion(NSUInteger * _Nullable major, + NSUInteger * _Nullable minor, + NSUInteger * _Nullable release); + +// Returns the version in @"a.b" or @"a.b.c" format +NSString *GTLRFrameworkVersionString(void); + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRObject.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRObject.h new file mode 100644 index 000000000..8f54dffd1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRObject.h @@ -0,0 +1,317 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GTLRObject documentation: +// https://github.com/google/google-api-objectivec-client-for-rest/wiki#objects-and-queries + +#import <Foundation/Foundation.h> + +#import "GTLRDefines.h" +#import "GTLRDateTime.h" +#import "GTLRDuration.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GTLRObject; + +/** + * Protocol that can be implemented to provide custom logic for what class + * should be created out of the given JSON. + */ +@protocol GTLRObjectClassResolver <NSObject> +- (Class)classForJSON:(NSDictionary *)json + defaultClass:(Class)defaultClass; +@end + +/** + * Standard GTLRObjectClassResolver used by the core library. + */ +@interface GTLRObjectClassResolver : NSObject<GTLRObjectClassResolver> + +/** + * Returns a resolver that will look up the 'kind' properties to find classes + * based on the JSON. + * + * The generated service classes provide a +kindStringToClassMap method for any + * mappings that were found from discovery when generating the service. + */ ++ (instancetype)resolverWithKindMap:(NSDictionary<NSString *, Class> *)kindStringToClassMap; + +/** + * Returns a resolver that will look up the 'kind' properties to find classes + * based on the JSON and then applies mapping of surrogate classes to swap out + * specific classes. + * + * Surrogates are subclasses to be instantiated instead of standard classes + * when creating objects from the JSON. For example, this code will, for one query's + * execution, swap a service's default resolver for one that will then use + * MyCalendarEventSubclass instead of GTLRCalendarEvent and + * MyCalendarReminderSubclass instead of GTLRCalendarReminder. + * + * @code + * NSDictionary *surrogates = @{ + * [GTLRCalendarEvent class] : [MyCalendarEventSubclass class] + * [GTLRCalendarReminder class] : [MyCalendarReminderSubclass class], + * }; + * NSDictionary *serviceKindMap = [[calendarService class] kindStringToClassMap]; + * GTLRObjectClassResolver *updatedResolver = + * [GTLRObjectClassResolver resolverWithKindMap:serviceKindMap + * surrogates:surrogates]; + * query.executionParameters.objectClassResolver = updatedResolver; + * @endcode + * + * @note To install surrogates for all queries executed by the service, use + * the service's @c -setSurrogates method. + */ ++ (instancetype)resolverWithKindMap:(NSDictionary<NSString *, Class> *)kindStringToClassMap + surrogates:(NSDictionary<Class, Class> *)surrogates; + +@end + +/** + * @c GTLRObject serves as the common superclass for classes wrapping JSON, errors, and other data + * passed in server requests and responses. + * + * @note This class is @em not safe for simultaneous use from multiple threads. Applications should + * serialize or protect access to a @c GTLRObject instance as they would for any standard + * Cocoa mutable container. + */ +@interface GTLRObject : NSObject <NSCopying, NSSecureCoding> + +/** + * The JSON underlying the property values for this object. + * + * The JSON should be accessed or set using the generated properties of a + * class derived from GTLRObject or with the methods @c setJSONValue:forKey: + * and @c JSONValueForKey: + * + * @note: Applications should use @c additionalPropertyForKey: when accessing + * API object properties that do not have generated @c \@property accessors. + */ +@property(nonatomic, strong, nullable) NSMutableDictionary *JSON; + +/** + * A dictionary retained by the object for the convenience of the client application. + * + * A client application may use this to retain any dictionary. + * + * The values of the user properties dictionary will not be sent to the server during + * query execution, and will not be copied by NSCopying or encoded by NSSecureCoding. + */ +@property(nonatomic, strong) NSDictionary *userProperties; + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// Public methods +// +// These methods are intended for users of the library +// +///////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Constructor for an empty object. + */ ++ (instancetype)object; + +/** + * Constructor for an object including JSON. + */ ++ (instancetype)objectWithJSON:(nullable NSDictionary *)dict; + +/** + * Constructor for an object including JSON and providing a resolver to help + * select the correct classes for sub objects within the json. + * + * The generated services provide a default resolver (-objectClassResolver) + * that covers the kinds for that service. They also expose the kind mappings + * via the +kindStringToClassMap method. + */ ++ (instancetype)objectWithJSON:(nullable NSDictionary *)dict + objectClassResolver:(id<GTLRObjectClassResolver>)objectClassResolver; + +/** + * The JSON for the object, or an empty string if there is no JSON or if the JSON + * dictionary cannot be represented as JSON. + */ +- (NSString *)JSONString; + +/** + * Generic access for setting entries in the JSON dictionary. This creates the JSON dictionary + * if necessary. + * + * @note: Applications should use @c setAdditionalProperty:forKey: when setting + * API object properties that do not have generated @c \@property accessors. + */ +- (void)setJSONValue:(nullable id)obj forKey:(nonnull NSString *)key; + +/** + * Generic access to the JSON dictionary. + * + * @note: Applications should use @c additionalPropertyForKey: when accessing + * API object properties that do not have generated @c \@property accessors. + */ +- (nullable id)JSONValueForKey:(NSString *)key; + +/** + * The list of keys in this object's JSON that are not listed as properties on the object. + */ +- (nullable NSArray<NSString *> *)additionalJSONKeys; + +/** + * Setter for any key in the JSON that is not listed as a @c \@property in the class declaration. + */ +- (void)setAdditionalProperty:(id)obj forName:(NSString *)name; + +/** + * Accessor for any key in the JSON that is not listed as a @c \@property in the class + * declaration. + */ +- (nullable id)additionalPropertyForName:(NSString *)name; + +/** + * A dictionary of all keys in the JSON that is not listed as a @c \@property in the class + * declaration. + */ +- (NSDictionary<NSString *, id> *)additionalProperties; + +/** + * A string for a partial query describing the fields present. + * + * @note Only the first element of any array is examined. + * + * @see https://developers.google.com/google-apps/tasks/performance?csw=1#partial + * + * @return A @c fields string describing the fields present in the object. + */ +- (NSString *)fieldsDescription; + +/** + * An object containing only the changes needed to do a partial update (patch), + * where the patch would be to change an object from the original to the receiver, + * such as + * @c GTLRSomeObject *patchObject = [newVersion patchObjectFromOriginal:oldVersion]; + * + * @note This method returns nil if there are no changes between the original and the receiver. + * + * @see https://developers.google.com/google-apps/tasks/performance?csw=1#patch + * + * @param original The original object from which to create the patch object. + * + * @return The object used for the patch body. + */ +- (nullable id)patchObjectFromOriginal:(GTLRObject *)original; + +/** + * A null value to set object properties for patch queries that delete fields. + * + * Do not use this except when setting an object property for a patch query. + * + * @return The null value object. + */ ++ (id)nullValue; + +#pragma mark Internal + +/////////////////////////////////////////////////////////////////////////////// +// +// Protected methods +// +// These methods are intended for subclasses of GTLRObject +// + +// Creation of objects from a JSON dictionary. The class created depends on +// the content of the JSON, not the class messaged. ++ (nullable GTLRObject *)objectForJSON:(NSMutableDictionary *)json + defaultClass:(nullable Class)defaultClass + objectClassResolver:(id<GTLRObjectClassResolver>)objectClassResolver; + +// Property-to-key mapping (for JSON keys which are not used as method names) ++ (nullable NSDictionary<NSString *, NSString *> *)propertyToJSONKeyMap; + +// property-to-Class mapping for array properties (to say what is in the array) ++ (nullable NSDictionary<NSString *, Class> *)arrayPropertyToClassMap; + +// The default class for additional JSON keys ++ (nullable Class)classForAdditionalProperties; + +// Indicates if a "kind" property on this class can be used for the class +// registry or if it appears to be non standard. ++ (BOOL)isKindValidForClassRegistry; + +@end + +/** + * Collection results have a property containing an array of @c GTLRObject + * + * This provides support for @c NSFastEnumeration and for indexed subscripting to + * access the objects in the array. + */ +@interface GTLRCollectionObject : GTLRObject<NSFastEnumeration> + +/** + * The property name that holds the collection. + * + * @return The key for the property holding the array of @c GTLRObject items. + */ ++ (NSString *)collectionItemsKey; + +// objectAtIndexedSubscript: will throw if the index is out of bounds (like +// NSArray does). +- (nullable id)objectAtIndexedSubscript:(NSUInteger)idx; + +@end + +/** + * A GTLRDataObject holds media data and the MIME type of the data returned by a media + * download query. + * + * The JSON for the object may be nil. + */ +@interface GTLRDataObject : GTLRObject + +/** + * The downloaded media data. + */ +@property(atomic, strong) NSData *data; + +/** + * The MIME type of the downloaded media data. + */ +@property(atomic, copy) NSString *contentType; + +@end + +/** + * Base class used when a service method directly returns an array instead + * of a JSON object. This exists for the methods not up to spec. + */ +@interface GTLRResultArray : GTLRCollectionObject + +/** + * This method should only be called by subclasses. + */ +- (nullable NSArray *)itemsWithItemClass:(Class)itemClass; +@end + +/** + * Helper to call the resolver and find the class to use for the given JSON. + * Intended for internal library use only. + */ +Class GTLRObjectResolveClass( + id<GTLRObjectClassResolver> objectClassResolver, + NSDictionary *json, + Class defaultClass); + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRQuery.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRQuery.h new file mode 100644 index 000000000..897153fd1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRQuery.h @@ -0,0 +1,253 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Query documentation: +// https://github.com/google/google-api-objectivec-client-for-rest/wiki#query-operations + +#import "GTLRObject.h" +#import "GTLRUploadParameters.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GTLRServiceTicket; +@class GTLRServiceExecutionParameters; +@class GTLRQuery; + +/** + * This protocol is just to support passing of either a batch or a single query + * to a GTLRService instance. The library does not expect or support client app + * implementations of this protocol. + */ +@protocol GTLRQueryProtocol <NSObject, NSCopying> + +/** + * Service ticket values may be set in the execution parameters for an individual query + * prior to executing the query. + */ +@property(atomic, strong, null_resettable) GTLRServiceExecutionParameters *executionParameters; + +- (BOOL)isBatchQuery; +- (BOOL)hasExecutionParameters; +- (BOOL)shouldSkipAuthorization; +- (void)invalidateQuery; +- (nullable NSDictionary<NSString *, NSString *> *)additionalHTTPHeaders; +- (nullable NSDictionary<NSString *, NSString *> *)additionalURLQueryParameters; +- (nullable NSString *)loggingName; +- (nullable GTLRUploadParameters *)uploadParameters; + +@end + +@protocol GTLRQueryCollectionProtocol +@optional +@property(nonatomic, strong) NSString *pageToken; +@end + +/** + * A block called when a query completes executing. + * + * Errors passed to the completionBlock will have an "underlying" GTLRErrorObject + * when the server returned an error for this specific query: + * + * GTLRErrorObject *errorObj = [GTLRErrorObject underlyingObjectForError:callbackError]; + * if (errorObj) { + * // The server returned this error for this specific query. + * } else { + * // The query execution fetch failed. + * } + * + * @param callbackTicket The ticket that tracked query execution. + * @param object The result of query execution. This will be derived from + * GTLRObject. + * @param callbackError If non-nil, the query execution failed. + */ +typedef void (^GTLRQueryCompletionBlock)(GTLRServiceTicket *callbackTicket, + id _Nullable object, + NSError * _Nullable callbackError); + +/** + * Class for a single query. + */ +@interface GTLRQuery : NSObject <GTLRQueryProtocol, NSCopying> + +/** + * The object to be uploaded with the query. The JSON of this object becomes + * the body for PUT and POST requests. + */ +@property(atomic, strong, nullable) GTLRObject *bodyObject; + +/** + * Each query must have a request ID string. The client app may replace the + * default assigned request ID with a custom string, provided that if + * used in a batch query, all request IDs in the batch must be unique. + */ +@property(atomic, copy) NSString *requestID; + +/** + * For queries which support file upload, the MIME type and file URL + * or data must be provided. + */ +@property(atomic, copy, nullable) GTLRUploadParameters *uploadParameters; + +/** + * Any additional URL query parameters for this query. + * + * These query parameters override the same keys from the service object's + * additionalURLQueryParameters + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalURLQueryParameters; + +/** + * Any additional HTTP headers for this query. + * + * These headers override the same keys from the service object's additionalHTTPHeaders + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalHTTPHeaders; + +/** + * If set, when the query is executed, an @c "alt" query parameter is added + * with this value and the raw result of the query is returned in a + * GTLRDataObject. This is useful when the server documents result datatypes + * other than JSON ("csv", for example). + */ +@property(atomic, copy) NSString *downloadAsDataObjectType; + +/** + * If set, and the query also has a non-empty @c downloadAsDataObjectType, the + * URL to download from will be modified to include "download/". This extra path + * component avoids the need for a server redirect to the download URL. + */ +@property(atomic, assign) BOOL useMediaDownloadService; + +/** + * Clients may set this to YES to disallow authorization. Defaults to NO. + */ +@property(atomic, assign) BOOL shouldSkipAuthorization; + +/** + * An optional callback block to be called immediately before the executeQuery: completion handler. + * + * The completionBlock property is particularly useful for queries executed in a batch. + */ +@property(atomic, copy, nullable) GTLRQueryCompletionBlock completionBlock; + +/** + * The brief string to identify this query in GTMSessionFetcher http logs. + * + * A default logging name is set by the code generator, but may be overridden by the client app. + */ +@property(atomic, copy, nullable) NSString *loggingName; + +#pragma mark Internal +///////////////////////////////////////////////////////////////////////////////////////////// +// +// Properties below are used by the library and aren't typically needed by client apps. +// +///////////////////////////////////////////////////////////////////////////////////////////// + +/** + * The URITemplate path segment. This is initialized in by the service generator. + */ +@property(atomic, readonly) NSString *pathURITemplate; + +/** + * The HTTP method to use for this query. This is initialized in by the service generator. + */ +@property(atomic, readonly, nullable) NSString *httpMethod; + +/** + * The parameters names that are in the URI Template. + * This is initialized in by the service generator. + * + * The service generator collects these via the discovery info instead of having to parse the + * template to figure out what is part of the path. + */ +@property(atomic, readonly, nullable) NSArray<NSString *> *pathParameterNames; + +/** + * The JSON dictionary of all the parameters set on this query. + * + * The JSON values are set by setting the query's properties. + */ +@property(nonatomic, strong, nullable) NSMutableDictionary<NSString *, id> *JSON; + +/** + * A custom URI template for resumable uploads. This is initialized by the service generator + * if needed. + */ +@property(atomic, copy, nullable) NSString *resumableUploadPathURITemplateOverride; + +/** + * A custom URI template for simple and multipart media uploads. This is initialized + * by the service generator. + */ +@property(atomic, copy, nullable) NSString *simpleUploadPathURITemplateOverride; + +/** + * The GTLRObject subclass expected for results. This is initialized by the service generator. + * + * This is needed if the object returned by the server lacks a known "kind" string. + */ +@property(atomic, assign, nullable) Class expectedObjectClass; + +/** + * Set when the query has been invalidated, meaning it was slated for execution so it's been copied + * and its callbacks were released, or it's a copy that has finished executing. + * + * Once a query has been invalidated, it cannot be executed, added to a batch, or copied. + */ +@property(atomic, assign, getter=isQueryInvalid) BOOL queryInvalid; + +/** + * Internal query init method. + * + * @param pathURITemplate URI template to be filled in with parameters. + * @param httpMethod The requests's http method. A nil method will execute as GET. + * @param pathParameterNames Names of parameters to be replaced in the template. + */ +- (instancetype)initWithPathURITemplate:(NSString *)pathURITemplate + HTTPMethod:(nullable NSString *)httpMethod + pathParameterNames:(nullable NSArray<NSString *> *)pathParameterNames NS_DESIGNATED_INITIALIZER; + +/** + * @return Auto-generated request ID string. + */ ++ (NSString *)nextRequestID; + +/** + * Overridden by subclasses. + * + * @return Substitute parameter names where needed for Objective-C or library compatibility. + */ ++ (nullable NSDictionary<NSString *, NSString *> *)parameterNameMap; + +/** + * Overridden by subclasses. + * + * @return Map of property keys to specifying the class of objects to be instantiated in arrays. + */ ++ (nullable NSDictionary<NSString *, Class> *)arrayPropertyToClassMap; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** + * The library doesn't use GTLRQueryCollectionImpl, but it provides a concrete implementation + * of the protocol so the methods do not cause private method errors in Xcode/AppStore review. + */ +@interface GTLRQueryCollectionImpl : GTLRQuery <GTLRQueryCollectionProtocol> +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRRuntimeCommon.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRRuntimeCommon.h new file mode 100644 index 000000000..d68f4bbb4 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRRuntimeCommon.h @@ -0,0 +1,73 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GTLRDefines.h" + +@protocol GTLRObjectClassResolver; + +NS_ASSUME_NONNULL_BEGIN + +// This protocol and support class are an internal implementation detail so +// GTLRObject and GTLRQuery can share some code. + +/** + * An internal protocol for the GTLR library. + * + * None of these methods should be used by client apps. + */ +@protocol GTLRRuntimeCommon <NSObject> +@required +// Get/Set properties +- (void)setJSONValue:(nullable id)obj forKey:(NSString *)key; +- (id)JSONValueForKey:(NSString *)key; +// Child cache +- (void)setCacheChild:(nullable id)obj forKey:(NSString *)key; +- (nullable id)cacheChildForKey:(NSString *)key; +// Object mapper. +- (nullable id<GTLRObjectClassResolver>)objectClassResolver; +// Key map ++ (nullable NSDictionary<NSString *, NSString *> *)propertyToJSONKeyMapForClass:(Class<GTLRRuntimeCommon>)aClass; +// Array item types ++ (nullable NSDictionary<NSString *, Class> *)arrayPropertyToClassMapForClass:(Class<GTLRRuntimeCommon>)aClass; +// The parent class for dynamic support ++ (nullable Class<GTLRRuntimeCommon>)ancestorClass; +@end + +/** + * An internal class for the GTLR library. + * + * None of these methods should be used by client apps. + */ +@interface GTLRRuntimeCommon : NSObject +// Wire things up. ++ (BOOL)resolveInstanceMethod:(SEL)sel onClass:(Class)onClass; +// Helpers ++ (nullable id)objectFromJSON:(id)json + defaultClass:(nullable Class)defaultClass + objectClassResolver:(id<GTLRObjectClassResolver>)objectClassResolver + isCacheable:(nullable BOOL *)isCacheable; ++ (nullable id)jsonFromAPIObject:(id)obj + expectedClass:(nullable Class)expectedClass + isCacheable:(nullable BOOL *)isCacheable; +// Walk up the class tree merging dictionaries and return the result. ++ (NSDictionary *)mergedClassDictionaryForSelector:(SEL)selector + startClass:(Class)startClass + ancestorClass:(Class)ancestorClass + cache:(NSMutableDictionary *)cache; +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRService.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRService.h new file mode 100644 index 000000000..721dfd901 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRService.h @@ -0,0 +1,879 @@ +/* Copyright (c) 2016 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Service object documentation: +// https://github.com/google/google-api-objectivec-client-for-rest/wiki#services-and-tickets + +#import <Foundation/Foundation.h> + +#import "GTLRDefines.h" +#import "GTLRBatchQuery.h" +#import "GTLRBatchResult.h" +#import "GTLRDateTime.h" +#import "GTLRDuration.h" +#import "GTLRErrorObject.h" +#import "GTLRObject.h" +#import "GTLRQuery.h" + +@class GTMSessionFetcher; +@class GTMSessionFetcherService; +@protocol GTMFetcherAuthorizationProtocol; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The domain used used for NSErrors created by GTLRService query execution. + */ +extern NSString *const kGTLRServiceErrorDomain; + +typedef NS_ENUM(NSInteger, GTLRServiceError) { + GTLRServiceErrorQueryResultMissing = -3000, + GTLRServiceErrorBatchResponseUnexpected = -3001, + GTLRServiceErrorBatchResponseStatusCode = -3002 +}; + +/** + * The kGTLRServiceErrorDomain userInfo key for the server response body. + */ +extern NSString *const kGTLRServiceErrorBodyDataKey; + +/** + * The kGTLRServiceErrorDomain userInfo key for the response content ID, if appropriate. + */ +extern NSString *const kGTLRServiceErrorContentIDKey; + +/** + * The domain used for foundation errors created from GTLRErrorObjects that + * were not originally foundation errors. + */ +extern NSString *const kGTLRErrorObjectDomain; + +/** + * The userInfo key for a GTLRErrorObject for errors with domain kGTLRErrorObjectDomain + * when the error was created from a structured JSON error response body. + */ +extern NSString *const kGTLRStructuredErrorKey; + +/** + * A constant ETag for when updating or deleting a single entry, telling + * the server to replace the current value unconditionally. + * + * Do not use this in entries in a batch feed. + */ +extern NSString *const kGTLRETagWildcard; + +/** + * Notification of a ticket starting. The notification object is the ticket. + * This is posted on the main thread. + * + * Use the stopped notification to log all requests made by the library. + */ +extern NSString *const kGTLRServiceTicketStartedNotification; + +/** + * Notification of a ticket stopping. The notification object is the ticket. + * This is posted on the main thread. + */ +extern NSString *const kGTLRServiceTicketStoppedNotification; + +/** + * Notifications when parsing of a server response or entry begins. + * This is posted on the main thread. + */ +extern NSString *const kGTLRServiceTicketParsingStartedNotification; + +/** + * Notifications when parsing of a server response or entry ends. + * This is posted on the main thread. + */ +extern NSString *const kGTLRServiceTicketParsingStoppedNotification; + +/** + * The header name used to send an Application's Bundle Identifier. + * For more information on adding API restrictions see the docs: + * https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions + */ +extern NSString *const kXIosBundleIdHeader; + +@class GTLRServiceTicket; + +/** + * Callback block for query execution. + * + * @param callbackTicket The ticket that tracked query execution. + * @param object The result of query execution. This will be derived from + * GTLRObject. The object may be nil for operations such as DELETE which + * do not return an object. The object will be a GTLRBatchResult for + * batch operations, and GTLRDataObject for media downloads. + * @param callbackError If non-nil, the query execution failed. For batch requests, + * this may be nil even if individual queries in the batch have failed. + */ +typedef void (^GTLRServiceCompletionHandler)(GTLRServiceTicket *callbackTicket, + id _Nullable object, + NSError * _Nullable callbackError); + +/** + * Callback block for upload of query data. + * + * @param progressTicket The ticket that tracks query execution. + * @param totalBytesUploaded Number of bytes uploaded so far. + * @param totalBytesExpectedToUpload Number of bytes expected to be uploaded. + */ +typedef void (^GTLRServiceUploadProgressBlock)(GTLRServiceTicket *progressTicket, + unsigned long long totalBytesUploaded, + unsigned long long totalBytesExpectedToUpload); + +/** + * Callback block invoked when an eror occurs during query execution. + * + * @param retryTicket The ticket that tracks query execution. + * @param suggestedWillRetry Flag indicating if the library would retry this without a retry block. + * @param fetchError The error that occurred. If the domain is + * kGTMSessionFetcherStatusDomain then the error's code is the server + * response status. Details on the error from the server are available + * in the userInfo via the keys kGTLRStructuredErrorKey and + * NSLocalizedDescriptionKey. + * + * @return YES if the request should be retried. + */ +typedef BOOL (^GTLRServiceRetryBlock)(GTLRServiceTicket *retryTicket, + BOOL suggestedWillRetry, + NSError * _Nullable fetchError); + +/** + * Block to be invoked by a test block. + * + * @param object The faked object, if any, to be passed to the test code's completion handler. + * @param error The faked error if any, to be passed to the test code's completion handler. + */ +typedef void (^GTLRServiceTestResponse)(id _Nullable object, NSError *_Nullable error); + +/** + * A test block enables testing of query execution without any network activity. + * + * The test block must finish by calling the response block, passing either an object + * (GTLRObject or GTLRBatchResult) or an NSError. + * + * The query is available to the test block code as testTicket.originalQuery. + * + * Because query execution is asynchronous, the test code must wait for a callback, + * either with GTLRService's waitForTicket:timeout:fetchedObject:error: or with + * XCTestCase's waitForExpectationsWithTimeout: + * + * Example usage is available in GTLRServiceTest. + * + * @param testTicket The ticket that tracks query execution. + * @param testResponse A block that must be invoked by the test block. This may be invoked + * synchronously or asynchornously. + */ +typedef void (^GTLRServiceTestBlock)(GTLRServiceTicket *testTicket, + GTLRServiceTestResponse testResponse); + +#pragma mark - + +/** + * Base class for the service that executes queries and manages tickets. + * + * Client apps will typically use a generated subclass of GTLRService. + */ +@interface GTLRService : NSObject + +#pragma mark Query Execution + +/** + * Executes the supplied query + * + * Success is indicated in the completion handler by a nil error parameter, not by a non-nil + * object parameter. + * + * The callback block is invoked exactly once unless the ticket is cancelled. + * The callback will be called on the service's callback queue. + * + * Various execution parameters will be taken from the service's properties, unless overridden + * in the query's @c executionParameters property. + * + * A query may only be executed a single time. To reuse a query, make a copy before executing + * it. + * + * To get a NSURLRequest that represents the query, use @c -[GTLRService requestForQuery:] + * + * @param query The API query, either a subclass of GTLRQuery, or a GTLRBatchQuery. + * @param handler The execution callback block. + * + * @return A ticket for tracking or canceling query execution. + */ +- (GTLRServiceTicket *)executeQuery:(id<GTLRQueryProtocol>)query + completionHandler:(nullable GTLRServiceCompletionHandler)handler; + +/** + * Executes the supplied query + * + * The callback is invoked exactly once unless the ticket is cancelled. + * The callback will be called on the service's callbackQueue. + * Various execution parameters will be taken from the service's properties, unless overridden + * in the query's @c executionParameters property. + * + * The selector should have a signature matching: + * @code + * - (void)serviceTicket:(GTLRServiceTicket *)callbackTicket + * finishedWithObject:(GTLRObject *)object + * error:(NSError *)callbackError + * @endcode + * + * @param query The API query, either a subclass of GTLRQuery, or a GTLRBatchQuery. + * @param delegate The object to be with the selector to be invoked upon completion. + * @param finishedSelector The selector to be invoked upon completion. + * + * @return A ticket for tracking or canceling query execution. + */ +- (GTLRServiceTicket *)executeQuery:(id<GTLRQueryProtocol>)query + delegate:(nullable id)delegate + didFinishSelector:(nullable SEL)finishedSelector; + + +/** + * Enable automatic pagination. + * + * A ticket can optionally do a sequence of fetches for queries where repeated requests + * with a @c nextPageToken query parameter is required to retrieve all pages of + * the response collection. The client's callback is invoked only when all items have + * been retrieved, or an error has occurred. + * + * The final object may be a combination of multiple page responses + * so it may not be the same as if all results had been returned in a single + * page. Some fields of the response may reflect only the final page's values. + * + * Automatic page fetches will return an error if more than 25 page fetches are + * required. For debug builds, this will log a warning to the console when more + * than 2 page fetches occur, as a reminder that the query's @c maxResults parameter + * should probably be increased to specify more items returned per page. + * + * Automatic page accumulation is available for query result objects that are derived + * from GTLRCollectionObject. + * + * This may also be specified for a single query in the query's @c executionParameters property. + * + * Default value is NO. + */ +@property(nonatomic, assign) BOOL shouldFetchNextPages; + +/** + * Some services require a developer key for quotas and limits. + * + * If you have enabled the iOS API Key Restriction, you will want + * to manually set the @c APIKeyRestrictionBundleID property, or + * use -setMainBundleIDRestrictionWithAPIKey: to set your API key + * and set the restriction to the main bundle's bundle id. + */ +@property(nonatomic, copy, nullable) NSString *APIKey; + +/** + * The Bundle Identifier to use for the API key restriction. This will be + * sent in an X-Ios-Bundle-Identifier header; for more information see + * the API key documentation + * https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions + */ +@property(nonatomic, copy, nullable) NSString *APIKeyRestrictionBundleID; + +/** + * Helper method to set the @c APIKey to the given value and set the + * @c APIKeyRestrictionBundleID to the main bundle's bundle identifier. + */ +- (void)setMainBundleIDRestrictionWithAPIKey:(NSString *)apiKey; + +/** + * An authorizer adds user authentication headers to the request as needed. + * + * This may be overridden on individual queries with the @c shouldSkipAuthorization property. + */ +@property(nonatomic, retain, nullable) id <GTMFetcherAuthorizationProtocol> authorizer; + +/** + * Enable fetcher retry support. See the explanation of retry support in @c GTMSessionFetcher.h + * + * Default value is NO, but retry is also enabled if the retryBlock is not nil. + * + * This may also be specified for a single query in the query's @c executionParameters property. + */ +@property(nonatomic, assign, getter=isRetryEnabled) BOOL retryEnabled; + +/** + * A retry block may be provided to inspect and change retry criteria. + * + * This may also be specified for a single query in the query's @c executionParameters property. + */ +@property(atomic, copy, nullable) GTLRServiceRetryBlock retryBlock; + +/** + * The maximum retry interval. Retries occur at increasing intervals, up to the specified maximum. + * + * This may also be specified for a single query in the query's @c executionParameters property. + */ +@property(nonatomic, assign) NSTimeInterval maxRetryInterval; + +#pragma mark Fetch Object by Resource URL + +/** + * Fetch an object given the resource URL. This is appropriate when the object's + * full link is known, such as from a selfLink response property. + * + * @param resourceURL The URL of the object to be fetched. + * @param objectClass The GTLRObject subclass to be instantiated. If nil, the library + * will try to infer the class from the object's "kind" string property. + * @param executionParameters Values to override the service's properties when executing the + * ticket. + * @param handler The execution callback block. + * + * @return A ticket for tracking or canceling query execution. + */ +- (GTLRServiceTicket *)fetchObjectWithURL:(NSURL *)resourceURL + objectClass:(nullable Class)objectClass + executionParameters:(nullable GTLRServiceExecutionParameters *)executionParameters + completionHandler:(nullable GTLRServiceCompletionHandler)handler; + +#pragma mark Support for Client Tests + +/** + * A test block can be provided to test service calls without any network activity. + * + * See the description of @c GTLRServiceTestBlock for additional details. + * + * This may also be specified for a single query in the query's @c executionParameters property. + * + * A service instance for testing can also be created with @c +mockServiceWithFakedObject + */ +@property(nonatomic, copy, nullable) GTLRServiceTestBlock testBlock; + +#pragma mark Converting a Query to an NSURLRequest + +/** + * Creates a NSURLRequest from the query object and from properties on this service + * (additionalHTTPHeaders, additionalURLQueryParameters, APIKey) without executing + * it. This can be useful for using @c GTMSessionFetcher or @c NSURLSession to + * perform the fetch. + * + * For requests to non-public resources, the request will not yet be authorized; + * that can be done using the GTLR service's authorizer. Creating a @c GTMSessionFetcher + * from the GTLRService's @c fetcherService will take care of authorization as well. + * + * This works only for GET queries, and only for an individual query, not a batch query. + * + * @note @c Unlike executeQuery:, requestForQuery: does not release the query's callback blocks. + * + * @param query The query used to create the request. + * + * @return A request suitable for use with @c GTMSessionFetcher or @c NSURLSession + */ +- (NSMutableURLRequest *)requestForQuery:(GTLRQuery *)query; + +#pragma mark User Properties + +/** + * The service properties dictionary is copied to become the initial property dictionary + * for each ticket, augmented by a query's execution parameter's properties. + */ +@property(nonatomic, copy, nullable) NSDictionary<NSString *, id> *serviceProperties; + +#pragma mark JSON to GTLRObject Mapping + +/** + * Specifies subclasses to be created instead of standard library objects, allowing + * an app to add properties and methods to GTLR objects. + * + * This is just a helper method that sets the service's objectClassResolver:. + * + * Example: + * @code + * NSDictionary *surrogates = @{ + * [MyDriveFile class] : [GTLRDrive_File_Surrogate class], + * [MyDriveFileList class] : [GTLRDrive_FileList_Surrogate class] + * }; + * [service setSurrogates:surrogates]; + * @endcode + */ +- (void)setSurrogates:(NSDictionary <Class, Class>*)surrogates; + +/** + * Used to decide what GTLRObject subclass to make from the received JSON. + * + * This defaults to a resolver that will use any kindStringToClassMap the service + * provides. + * + * To use a standard resolver with a surrogates dictionary, invoke setSurrogates: instead + * of setting this property. + */ +@property(nonatomic, strong) id<GTLRObjectClassResolver> objectClassResolver; + +/** + * A dictionary mapping "kind" strings to the GTLObject subclasses that should + * be created for JSON with the given kind. + */ ++ (NSDictionary<NSString *, Class> *)kindStringToClassMap; + +#pragma mark Request Settings + +/** + * The queue used to invoked callbacks. By default, the main queue is used for callbacks. + */ +@property(nonatomic, retain) dispatch_queue_t callbackQueue; + +/** + * Allows the application to make non-SSL and localhost requests for testing. + * + * Default value is NO. + */ +@property(nonatomic, assign) BOOL allowInsecureQueries; + +/** + * The fetcher service creates the fetcher instances for this API service. + * + * Applications may set this to an authorized fetcher service created elsewhere + * in the app, or may take the fetcher service created by this GTLRService and use it + * to create fetchers independent of this service. + */ +@property(nonatomic, retain) GTMSessionFetcherService *fetcherService; + +#pragma mark Custom User Agents + +/** + * Applications needing an additional identifier in the server logs may specify one + * through this property and it will be added to the existing UserAgent. It should + * already be a valid identifier as no cleaning/validation is done. + */ +@property(nonatomic, copy, nullable) NSString *userAgentAddition; + +/** + * A base user-agent based on the application signature in the Info.plist settings. + * + * Most applications should not explicitly set this property. Any string provided will + * be cleaned of inappropriate characters. + */ +@property(nonatomic, copy, nullable) NSString *userAgent; + +/** + * The request user agent includes the library and OS version appended to the + * base userAgent, along with the optional addition string. + */ +@property(nonatomic, readonly, nullable) NSString *requestUserAgent; + +/** + * A precise base userAgent string identifying the application. No cleaning of characters + * is done. Library-specific details will be appended. + * + * @param userAgent A wire-ready user agent string. + */ +- (void)setExactUserAgent:(nullable NSString *)userAgent; + +/** + * A precise userAgent string to send on requests; no cleaning is done. When + * set, requestUserAgent will be exactly this, no library or system information + * will be auto added. + * + * @param requestUserAgent A wire-ready user agent string. + */ +- (void)overrideRequestUserAgent:(nullable NSString *)requestUserAgent; + +/** + * Any additional URL query parameters for the queries executed by this service. + * + * Individual queries may have additionalURLQueryParameters specified as well. + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalURLQueryParameters; + +/** + * Any additional HTTP headers for this queries executed by this service. + * + * Individual queries may have additionalHTTPHeaders specified as well. + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, NSString *> *additionalHTTPHeaders; + +#pragma mark Request URL Construction + +/* + * The URL for where to send a Query is built out of these parts + * ( https://developers.google.com/discovery/v1/using#build-compose ) : + * + * service.rootURLString + service.servicePath + query.pathURITemplate + * + * Note: odds are these both should end in a '/', so make sure any value you + * provide will combine correctly with the above rules. + */ + +/** + * The scheme and host for the API server. This may be modified to point at a test server. + */ +@property(nonatomic, copy) NSString *rootURLString; + +/** + * The path for the specific API service instance, relative to the rootURLString. + */ +@property(nonatomic, copy) NSString *servicePath; + +/** + * A path fragment added in to URLs before "servicePath" to build + * the full URL used for resumable media uploads. + */ +@property(nonatomic, copy) NSString *resumableUploadPath; + +/** + * A path fragment added in to URLs before "servicePath" to build + * the full URL used for simple and multipart media uploads. + */ +@property(nonatomic, copy) NSString *simpleUploadPath; + +/** + * A path fragment added in to URLs before "servicePath" to build + * the full URL used for batch requests. + */ +@property(nonatomic, copy) NSString *batchPath; + +#pragma mark Resumable Uploads + +/** + * A block called to track upload progress. + * + * A query's service execution parameters may be used to override this. + */ +@property(nonatomic, copy, nullable) GTLRServiceUploadProgressBlock uploadProgressBlock; + +/** + * The default chunk size for resumable uploads. This defaults to kGTLRStandardUploadChunkSize + * for service subclasses that support chunked uploads. + */ +@property(nonatomic, assign) NSUInteger serviceUploadChunkSize; + +/** + * Service subclasses may override this to specify their own default chunk size for + * resumable uploads. + */ ++ (NSUInteger)defaultServiceUploadChunkSize; + +#pragma mark Internal +///////////////////////////////////////////////////////////////////////////////////////////// +// +// Properties below are used by the library and should not typically be set by client apps. +// +///////////////////////////////////////////////////////////////////////////////////////////// + +/** + * The queue used for parsing JSON responses. + * + * Applications should typically not change this. + */ +@property(nonatomic, retain) dispatch_queue_t parseQueue; + +/** + * If this service supports pretty printing the JSON on the wire, these are + * the names of the query params that enable it. If there are any values, + * the library disables pretty printing to save on bandwidth. + * + * Applications should typically not need change this; the ServiceGenerator + * will set this up when generating the custom subclass. + */ +@property(nonatomic, strong, nullable) NSArray<NSString *> *prettyPrintQueryParameterNames; + +/** + * This indicates if the API requires a "data" JSON element to wrap the payload + * on requests and responses. + * + * Applications should typically not change this. + */ +@property(nonatomic, assign, getter=isDataWrapperRequired) BOOL dataWrapperRequired; + +@end + +@interface GTLRService (TestingSupport) + +/** + * Convenience method to create a mock GTLR service just for testing. + * + * Queries executed by this mock service will not perform any network operation, + * but will invoke callbacks and provide the supplied object or error to the + * completion handler. + * + * You can make more customized mocks by setting the test block property of a service + * or a query's execution parameters. The test block can inspect the query as ticket.originalQuery + * to customize test behavior. + * + * See the description of @c GTLRServiceTestBlock for more details on customized testing. + * + * Example usage is in the unit test method @c testService_MockService_Succeeding + * + * @param object An object derived from GTLRObject to be passed to query completion handlers. + * @param error An error to be passed to query completion handlers. + * + * @return A mock instance of the service, suitable for unit testing. + */ ++ (instancetype)mockServiceWithFakedObject:(nullable id)object + fakedError:(nullable NSError *)error; + +/** + * Wait synchronously for fetch to complete (strongly discouraged) + * + * This method is intended for use only in unit tests and command-line tools. + * Unit tests may also use XCTest's waitForExpectationsWithTimeout: instead of + * or after this method. + * + * This method just runs the current event loop until the fetch completes + * or the timout limit is reached. This may discard unexpected events + * that occur while spinning, so it's really not appropriate for use + * in serious applications. + * + * Returns YES if an object was successfully fetched. If the wait + * timed out, returns NO and the returned error is nil. + * + * @param ticket The ticket being executed. + * @param timeoutInSeconds Maximum duration to wait. + * + * @return YES if the ticket completed or was cancelled; NO if the wait timed out. + */ +- (BOOL)waitForTicket:(GTLRServiceTicket *)ticket + timeout:(NSTimeInterval)timeoutInSeconds; + +@end + +#pragma mark - + +/** + * Service execution parameters may be set on an individual query + * to alter the service's settings. + */ +@interface GTLRServiceExecutionParameters : NSObject<NSCopying> + +/** + * Override the service's property @c shouldFetchNextPages for automatic pagination. + * + * A BOOL value should be specified. + */ +@property(atomic, strong, nullable) NSNumber *shouldFetchNextPages; + +/** + * Override the service's property @c shouldFetchNextPages for enabling automatic retries. + * + * A BOOL value should be specified. + * + * Retry is also enabled if the retryBlock is not nil + */ +@property(atomic, strong, nullable, getter=isRetryEnabled) NSNumber *retryEnabled; + +/** + * Override the service's property @c retryBlock for customizing automatic retries. + */ +@property(atomic, copy, nullable) GTLRServiceRetryBlock retryBlock; + +/** + * Override the service's property @c maxRetryInterval for customizing automatic retries. + * + * A NSTimeInterval (double) value should be specified. + */ +@property(atomic, strong, nullable) NSNumber *maxRetryInterval; + +/** + * Override the service's property @c uploadProgressBlock for monitoring upload progress. + */ +@property(atomic, copy, nullable) GTLRServiceUploadProgressBlock uploadProgressBlock; + +/** + * Override the service's property @c callbackQueue for invoking callbacks. + */ +@property(atomic, retain, nullable) dispatch_queue_t callbackQueue; + +/** + * Override the service's property @c testBlock for simulating query execution. + * + * See the description of @c GTLRServiceTestBlock for additional details. + */ +@property(atomic, copy, nullable) GTLRServiceTestBlock testBlock; + +/** + * Override the service's property @c objectClassResolver for controlling object class selection. + */ +@property(atomic, strong, nullable) id<GTLRObjectClassResolver> objectClassResolver; + +/** + * The ticket's properties are the service properties, with the execution parameter's + * ticketProperties added (replacing any keys already present from the service.) + */ +@property(atomic, copy, nullable) NSDictionary<NSString *, id> *ticketProperties; + +/** + * Indicates if any of the execution parameters properties are set. + */ +@property(nonatomic, readonly) BOOL hasParameters; + +@end + +/** + * A ticket tracks the progress of a query being executed. + */ +@interface GTLRServiceTicket : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** + * The service that issued this ticket. + * + * This method may be invoked from any thread. + */ +@property(atomic, readonly) GTLRService *service; + +#pragma mark Execution Control + +/** + * Invoking cancelTicket stops the fetch if it is in progress. The query callbacks + * will not be invoked. + * + * This method may be invoked from any thread. + */ +- (void)cancelTicket; + +/** + * The time the ticket was created. + */ +@property(atomic, readonly) NSDate *creationDate; + +/** + * Pause the ticket execution. This is valid only for chunked, resumable upload queries. + */ +- (void)pauseUpload; + +/** + * Resume the ticket execution. This is valid only for chunked, resumable upload queries. + */ +- (void)resumeUpload; + +/** + * Checks if the ticket execution is paused. + */ +@property(nonatomic, readonly, getter=isUploadPaused) BOOL uploadPaused; + +/** + * The request being fetched for the query. + */ +@property(nonatomic, readonly, nullable) NSURLRequest *fetchRequest; + +/** + * The fetcher being used for the query request. + */ +@property(atomic, readonly, nullable) GTMSessionFetcher *objectFetcher; + +/** + * The queue used for query callbacks. + */ +@property(atomic, readonly) dispatch_queue_t callbackQueue; + +/** + * The API key used for the query requeat. + */ +@property(atomic, readonly, nullable) NSString *APIKey; + +/** + * The Bundle Identifier to use for the API key restriciton. + */ +@property(atomic, readonly, nullable) NSString *APIKeyRestrictionBundleID; + +#pragma mark Status + +/** + * The server's response status for the query's fetch, if available. + */ +@property(nonatomic, readonly) NSInteger statusCode; + +/** + * The error resulting from the query's fetch, if available. + */ +@property(nonatomic, readonly, nullable) NSError *fetchError; + +/** + * A flag indicating if the query's callbacks have been invoked. + */ +@property(nonatomic, readonly) BOOL hasCalledCallback; + +/** + * A flag indicating if the query execution was cancelled by the client app. + */ +@property(atomic, readonly, getter=isCancelled) BOOL cancelled; + +#pragma mark Pagination + +/** + * A flag indicating if automatic pagination is enabled for the query. + */ +@property(nonatomic, readonly) BOOL shouldFetchNextPages; + +/** + * The number of pages fetched, if automatic pagination is enabled for the query and multiple + * pages have been fetched. + */ +@property(nonatomic, readonly) NSUInteger pagesFetchedCounter; + +#pragma mark User Properties + +/** + * Ticket properties a way to pass values via the ticket for the convenience of the client app. + * + * Ticket properties are initialized from serviceProperties and augmented by the ticketProperties + * of the query's execution parameters. + */ +@property(nonatomic, readonly, nullable) NSDictionary<NSString *, id> *ticketProperties; + +#pragma mark Payload + +/** + * The object being uploaded via POST, PUT, or PATCH. + */ +@property(nonatomic, readonly, nullable) GTLRObject *postedObject; + +/** + * The object downloaded for the query, after parsing. + */ +@property(nonatomic, readonly, nullable) GTLRObject *fetchedObject; + +/** + * The query currently being fetched by this ticket. This may not be the original query when + * fetching a second or later pages. + */ +@property(atomic, readonly, nullable) id<GTLRQueryProtocol> executingQuery; + +/** + * The query used to create this ticket + */ +@property(atomic, readonly, nullable) id<GTLRQueryProtocol> originalQuery; + +/** + * The @c GTLRObjectClassResolver for controlling object class selection. + */ +@property(atomic, readonly, strong) id<GTLRObjectClassResolver> objectClassResolver; + +/** + * The query from within the ticket's batch request with the given ID. + * + * @param requestID The desired ticket's request ID. + * + * @return The query with the specified ID, if found. + */ +- (nullable GTLRQuery *)queryForRequestID:(NSString *)requestID; + +@end + +/** + * The library doesn't use GTLRObjectCollectionImpl, but it provides a concrete implementation + * so the methods do not cause private method errors in Xcode/AppStore review. + */ +@interface GTLRObjectCollectionImpl : GTLRObject +@property(nonatomic, copy) NSString *nextPageToken; +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRURITemplate.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRURITemplate.h new file mode 100644 index 000000000..fa200fe84 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRURITemplate.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#ifndef SKIP_GTLR_DEFINES + #import "GTLRDefines.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +// +// URI Template +// +// http://tools.ietf.org/html/draft-gregorio-uritemplate-04 +// +// NOTE: This implemention is only a subset of the spec. It should be able +// to parse any tempate that matches the spec, but if the template makes use +// of a feature that is not supported, it will fail with an error. +// + +@interface GTLRURITemplate : NSObject + +// Process the template. If the template uses an unsupported feature, it will +// throw an exception to help catch that limitation. Currently unsupported +// feature is partial result modifiers (prefix/suffix). +// +// valueProvider should be anything that implements -objectForKey:. At the +// simplest level, this can be an NSDictionary. However, a custom class that +// implements valueForKey my be better for some uses. ++ (NSString *)expandTemplate:(NSString *)URITemplate + values:(NSDictionary *)valueProvider; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUploadParameters.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUploadParameters.h new file mode 100644 index 000000000..fb2402b76 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUploadParameters.h @@ -0,0 +1,124 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Uploading documentation: +// https://github.com/google/google-api-objectivec-client-for-rest/wiki#uploading-files + +#import <Foundation/Foundation.h> + +#import "GTLRDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Upload parameters are required for chunked-resumable or simple/multipart uploads. + * + * The MIME type and one source for data (@c NSData, file URL, or @c NSFileHandle) must + * be specified. + */ +@interface GTLRUploadParameters : NSObject <NSCopying> + +/** + * The type of media being uploaded. + */ +@property(atomic, copy, nullable) NSString *MIMEType; + +/** + * The media to be uploaded, represented as @c NSData. + */ +@property(atomic, retain, nullable) NSData *data; + +/** + * The URL for the local file to be uploaded. + */ +@property(atomic, retain, nullable) NSURL *fileURL; + +/** + * The media to be uploaded, represented as @c NSFileHandle. + * + * @note This property is provided for compatibility with older code. + * Uploading using @c fileURL is preferred over @c fileHandle + */ +@property(atomic, retain, nullable) NSFileHandle *fileHandle; + +/** + * Resuming an in-progress resumable, chunked upload is done with the upload location URL, + * and requires a file URL or file handle for uploading. + */ +@property(atomic, retain, nullable) NSURL *uploadLocationURL; + +/** + * Small uploads (for example, under 200K) can be done with a single multipart upload + * request. The upload body must be provided as NSData, not a file URL or file handle. + * + * Default value is NO. + */ +@property(atomic, assign) BOOL shouldUploadWithSingleRequest; + +/** + * Uploads may be done without a JSON body as metadata in the initial request. + * + * Default value is NO. + */ +@property(atomic, assign) BOOL shouldSendUploadOnly; + +/** + * Uploads may use a background session when uploading via GTMSessionUploadFetcher. + * Since background session fetches are slower than foreground fetches, this defaults + * to NO. + * + * It's reasonable for an application to set this to YES for a rare upload of a large file. + * + * Default value is NO. + * + * For more information about the hazards of background sessions, see the header comments for + * the GTMSessionFetcher useBackgroundSession property. + */ +@property(atomic, assign) BOOL useBackgroundSession; + +/** + * Constructor for uploading from @c NSData. + * + * @param data The data to uploaded. + * @param mimeType The media's type. + * + * @return The upload parameters object. + */ ++ (instancetype)uploadParametersWithData:(NSData *)data + MIMEType:(NSString *)mimeType; + +/** + * Constructor for uploading from a file URL. + * + * @param fileURL The file to upload. + * @param mimeType The media's type. + * + * @return The upload parameters object. + */ ++ (instancetype)uploadParametersWithFileURL:(NSURL *)fileURL + MIMEType:(NSString *)mimeType; + +/** + * Constructor for uploading from a file handle. + * + * @note This method is provided for compatibility with older code. To upload files, + * use a file URL. + */ ++ (instancetype)uploadParametersWithFileHandle:(NSFileHandle *)fileHandle + MIMEType:(NSString *)mimeType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUtilities.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUtilities.h new file mode 100644 index 000000000..5c37f1309 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRUtilities.h @@ -0,0 +1,52 @@ +/* Copyright (c) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#ifndef SKIP_GTLR_DEFINES + #import "GTLRDefines.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +// Helper functions for implementing isEqual: +BOOL GTLR_AreEqualOrBothNil(id _Nullable obj1, id _Nullable obj2); +BOOL GTLR_AreBoolsEqual(BOOL b1, BOOL b2); + +// Helper to ensure a number is a number. +// +// The Google API servers will send numbers >53 bits as strings to avoid +// bugs in some JavaScript implementations. Work around this by catching +// the string and turning it back into a number. +NSNumber *GTLR_EnsureNSNumber(NSNumber *num); + +@interface GTLRUtilities : NSObject + +// Key-value coding searches in an array +// +// Utilities to get from an array objects having a known value (or nil) +// at a keyPath + ++ (NSArray *)objectsFromArray:(NSArray *)sourceArray + withValue:(id)desiredValue + forKeyPath:(NSString *)keyPath; + ++ (nullable id)firstObjectFromArray:(NSArray *)sourceArray + withValue:(id)desiredValue + forKeyPath:(NSString *)keyPath; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVision.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVision.h new file mode 100644 index 000000000..460b385c0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVision.h @@ -0,0 +1,15 @@ +// NOTE: This file was generated by the ServiceGenerator. + +// ---------------------------------------------------------------------------- +// API: +// Cloud Vision API (vision/v1) +// Description: +// Integrates Google Vision features, including image labeling, face, logo, +// and landmark detection, optical character recognition (OCR), and detection +// of explicit content, into applications. +// Documentation: +// https://cloud.google.com/vision/ + +#import "GTLRVisionObjects.h" +#import "GTLRVisionQuery.h" +#import "GTLRVisionService.h" diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionObjects.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionObjects.h new file mode 100644 index 000000000..b5501a084 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionObjects.h @@ -0,0 +1,11155 @@ +// NOTE: This file was generated by the ServiceGenerator. + +// ---------------------------------------------------------------------------- +// API: +// Cloud Vision API (vision/v1) +// Description: +// Integrates Google Vision features, including image labeling, face, logo, +// and landmark detection, optical character recognition (OCR), and detection +// of explicit content, into applications. +// Documentation: +// https://cloud.google.com/vision/ + +#if GTLR_BUILT_AS_FRAMEWORK + #import "GTLR/GTLRObject.h" +#else + #import "GTLRObject.h" +#endif + +#if GTLR_RUNTIME_VERSION != 3000 +#error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source. +#endif + +@class GTLRVision_AnnotateImageRequest; +@class GTLRVision_AnnotateImageResponse; +@class GTLRVision_AsyncAnnotateFileRequest; +@class GTLRVision_AsyncAnnotateFileResponse; +@class GTLRVision_Block; +@class GTLRVision_BoundingPoly; +@class GTLRVision_Color; +@class GTLRVision_ColorInfo; +@class GTLRVision_CropHint; +@class GTLRVision_CropHintsAnnotation; +@class GTLRVision_CropHintsParams; +@class GTLRVision_DetectedBreak; +@class GTLRVision_DetectedLanguage; +@class GTLRVision_DominantColorsAnnotation; +@class GTLRVision_EntityAnnotation; +@class GTLRVision_FaceAnnotation; +@class GTLRVision_Feature; +@class GTLRVision_GcsDestination; +@class GTLRVision_GcsSource; +@class GTLRVision_GoogleCloudVisionV1p1beta1AnnotateImageResponse; +@class GTLRVision_GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse; +@class GTLRVision_GoogleCloudVisionV1p1beta1Block; +@class GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly; +@class GTLRVision_GoogleCloudVisionV1p1beta1ColorInfo; +@class GTLRVision_GoogleCloudVisionV1p1beta1CropHint; +@class GTLRVision_GoogleCloudVisionV1p1beta1CropHintsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1DominantColorsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark; +@class GTLRVision_GoogleCloudVisionV1p1beta1GcsDestination; +@class GTLRVision_GoogleCloudVisionV1p1beta1GcsSource; +@class GTLRVision_GoogleCloudVisionV1p1beta1ImageAnnotationContext; +@class GTLRVision_GoogleCloudVisionV1p1beta1ImageProperties; +@class GTLRVision_GoogleCloudVisionV1p1beta1InputConfig; +@class GTLRVision_GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1LocationInfo; +@class GTLRVision_GoogleCloudVisionV1p1beta1NormalizedVertex; +@class GTLRVision_GoogleCloudVisionV1p1beta1OutputConfig; +@class GTLRVision_GoogleCloudVisionV1p1beta1Page; +@class GTLRVision_GoogleCloudVisionV1p1beta1Paragraph; +@class GTLRVision_GoogleCloudVisionV1p1beta1Position; +@class GTLRVision_GoogleCloudVisionV1p1beta1Product; +@class GTLRVision_GoogleCloudVisionV1p1beta1ProductKeyValue; +@class GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResults; +@class GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult; +@class GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsResult; +@class GTLRVision_GoogleCloudVisionV1p1beta1Property; +@class GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1Symbol; +@class GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotation; +@class GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak; +@class GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage; +@class GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty; +@class GTLRVision_GoogleCloudVisionV1p1beta1Vertex; +@class GTLRVision_GoogleCloudVisionV1p1beta1WebDetection; +@class GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebEntity; +@class GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage; +@class GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebLabel; +@class GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebPage; +@class GTLRVision_GoogleCloudVisionV1p1beta1Word; +@class GTLRVision_GoogleCloudVisionV1p2beta1AnnotateImageResponse; +@class GTLRVision_GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse; +@class GTLRVision_GoogleCloudVisionV1p2beta1Block; +@class GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly; +@class GTLRVision_GoogleCloudVisionV1p2beta1ColorInfo; +@class GTLRVision_GoogleCloudVisionV1p2beta1CropHint; +@class GTLRVision_GoogleCloudVisionV1p2beta1CropHintsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1DominantColorsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark; +@class GTLRVision_GoogleCloudVisionV1p2beta1GcsDestination; +@class GTLRVision_GoogleCloudVisionV1p2beta1GcsSource; +@class GTLRVision_GoogleCloudVisionV1p2beta1ImageAnnotationContext; +@class GTLRVision_GoogleCloudVisionV1p2beta1ImageProperties; +@class GTLRVision_GoogleCloudVisionV1p2beta1InputConfig; +@class GTLRVision_GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1LocationInfo; +@class GTLRVision_GoogleCloudVisionV1p2beta1NormalizedVertex; +@class GTLRVision_GoogleCloudVisionV1p2beta1OutputConfig; +@class GTLRVision_GoogleCloudVisionV1p2beta1Page; +@class GTLRVision_GoogleCloudVisionV1p2beta1Paragraph; +@class GTLRVision_GoogleCloudVisionV1p2beta1Position; +@class GTLRVision_GoogleCloudVisionV1p2beta1Product; +@class GTLRVision_GoogleCloudVisionV1p2beta1ProductKeyValue; +@class GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResults; +@class GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult; +@class GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsResult; +@class GTLRVision_GoogleCloudVisionV1p2beta1Property; +@class GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1Symbol; +@class GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotation; +@class GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak; +@class GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage; +@class GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty; +@class GTLRVision_GoogleCloudVisionV1p2beta1Vertex; +@class GTLRVision_GoogleCloudVisionV1p2beta1WebDetection; +@class GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebEntity; +@class GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage; +@class GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebLabel; +@class GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebPage; +@class GTLRVision_GoogleCloudVisionV1p2beta1Word; +@class GTLRVision_GoogleCloudVisionV1p3beta1AnnotateImageResponse; +@class GTLRVision_GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse; +@class GTLRVision_GoogleCloudVisionV1p3beta1Block; +@class GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly; +@class GTLRVision_GoogleCloudVisionV1p3beta1ColorInfo; +@class GTLRVision_GoogleCloudVisionV1p3beta1CropHint; +@class GTLRVision_GoogleCloudVisionV1p3beta1CropHintsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1DominantColorsAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark; +@class GTLRVision_GoogleCloudVisionV1p3beta1GcsDestination; +@class GTLRVision_GoogleCloudVisionV1p3beta1GcsSource; +@class GTLRVision_GoogleCloudVisionV1p3beta1ImageAnnotationContext; +@class GTLRVision_GoogleCloudVisionV1p3beta1ImageProperties; +@class GTLRVision_GoogleCloudVisionV1p3beta1InputConfig; +@class GTLRVision_GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1LocationInfo; +@class GTLRVision_GoogleCloudVisionV1p3beta1NormalizedVertex; +@class GTLRVision_GoogleCloudVisionV1p3beta1OutputConfig; +@class GTLRVision_GoogleCloudVisionV1p3beta1Page; +@class GTLRVision_GoogleCloudVisionV1p3beta1Paragraph; +@class GTLRVision_GoogleCloudVisionV1p3beta1Position; +@class GTLRVision_GoogleCloudVisionV1p3beta1Product; +@class GTLRVision_GoogleCloudVisionV1p3beta1ProductKeyValue; +@class GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResults; +@class GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult; +@class GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsResult; +@class GTLRVision_GoogleCloudVisionV1p3beta1Property; +@class GTLRVision_GoogleCloudVisionV1p3beta1ReferenceImage; +@class GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1Symbol; +@class GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotation; +@class GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak; +@class GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage; +@class GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty; +@class GTLRVision_GoogleCloudVisionV1p3beta1Vertex; +@class GTLRVision_GoogleCloudVisionV1p3beta1WebDetection; +@class GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebEntity; +@class GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage; +@class GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebLabel; +@class GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebPage; +@class GTLRVision_GoogleCloudVisionV1p3beta1Word; +@class GTLRVision_GroupedResult; +@class GTLRVision_Image; +@class GTLRVision_ImageAnnotationContext; +@class GTLRVision_ImageContext; +@class GTLRVision_ImageProperties; +@class GTLRVision_ImageSource; +@class GTLRVision_ImportProductSetsGcsSource; +@class GTLRVision_ImportProductSetsInputConfig; +@class GTLRVision_InputConfig; +@class GTLRVision_KeyValue; +@class GTLRVision_Landmark; +@class GTLRVision_LatLng; +@class GTLRVision_LatLongRect; +@class GTLRVision_LocalizedObjectAnnotation; +@class GTLRVision_LocationInfo; +@class GTLRVision_NormalizedVertex; +@class GTLRVision_Operation; +@class GTLRVision_Operation_Metadata; +@class GTLRVision_Operation_Response; +@class GTLRVision_OutputConfig; +@class GTLRVision_Page; +@class GTLRVision_Paragraph; +@class GTLRVision_Position; +@class GTLRVision_Product; +@class GTLRVision_ProductSearchParams; +@class GTLRVision_ProductSearchResults; +@class GTLRVision_ProductSet; +@class GTLRVision_Property; +@class GTLRVision_ReferenceImage; +@class GTLRVision_Result; +@class GTLRVision_SafeSearchAnnotation; +@class GTLRVision_Status; +@class GTLRVision_Status_Details_Item; +@class GTLRVision_Symbol; +@class GTLRVision_TextAnnotation; +@class GTLRVision_TextProperty; +@class GTLRVision_Vertex; +@class GTLRVision_WebDetection; +@class GTLRVision_WebDetectionParams; +@class GTLRVision_WebEntity; +@class GTLRVision_WebImage; +@class GTLRVision_WebLabel; +@class GTLRVision_WebPage; +@class GTLRVision_Word; + +// Generated comments include content from the discovery document; avoid them +// causing warnings since clang's checks are some what arbitrary. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdocumentation" + +NS_ASSUME_NONNULL_BEGIN + +// ---------------------------------------------------------------------------- +// Constants - For some of the classes' properties below. + +// ---------------------------------------------------------------------------- +// GTLRVision_BatchOperationMetadata.state + +/** + * The request is done after the longrunning.Operations.CancelOperation has + * been called by the user. Any records that were processed before the + * cancel command are output as specified in the request. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_BatchOperationMetadata_State_Cancelled; +/** + * The request is done and no item has been successfully processed. + * + * Value: "FAILED" + */ +GTLR_EXTERN NSString * const kGTLRVision_BatchOperationMetadata_State_Failed; +/** + * Request is actively being processed. + * + * Value: "PROCESSING" + */ +GTLR_EXTERN NSString * const kGTLRVision_BatchOperationMetadata_State_Processing; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_BatchOperationMetadata_State_StateUnspecified; +/** + * The request is done and at least one item has been successfully + * processed. + * + * Value: "SUCCESSFUL" + */ +GTLR_EXTERN NSString * const kGTLRVision_BatchOperationMetadata_State_Successful; + +// ---------------------------------------------------------------------------- +// GTLRVision_Block.blockType + +/** + * Barcode block. + * + * Value: "BARCODE" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Barcode; +/** + * Image block. + * + * Value: "PICTURE" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Picture; +/** + * Horizontal/vertical line box. + * + * Value: "RULER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Ruler; +/** + * Table block. + * + * Value: "TABLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Table; +/** + * Regular text block. + * + * Value: "TEXT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Text; +/** + * Unknown block type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_Block_BlockType_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_DetectedBreak.type + +/** + * Line-wrapping break. + * + * Value: "EOL_SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_EolSureSpace; +/** + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. + * + * Value: "HYPHEN" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_Hyphen; +/** + * Line break that ends a paragraph. + * + * Value: "LINE_BREAK" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_LineBreak; +/** + * Regular space. + * + * Value: "SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_Space; +/** + * Sure space (very wide). + * + * Value: "SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_SureSpace; +/** + * Unknown break label type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_DetectedBreak_Type_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.angerLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_AngerLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.blurredLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_BlurredLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.headwearLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_HeadwearLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.joyLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_JoyLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.sorrowLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SorrowLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.surpriseLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_SurpriseLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_FaceAnnotation.underExposedLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_FaceAnnotation_UnderExposedLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_Feature.type + +/** + * Run crop hints. + * + * Value: "CROP_HINTS" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_CropHints; +/** + * Run dense text document OCR. Takes precedence when both + * `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present. + * + * Value: "DOCUMENT_TEXT_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_DocumentTextDetection; +/** + * Run face detection. + * + * Value: "FACE_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_FaceDetection; +/** + * Compute a set of image properties, such as the + * image's dominant colors. + * + * Value: "IMAGE_PROPERTIES" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_ImageProperties; +/** + * Run label detection. + * + * Value: "LABEL_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_LabelDetection; +/** + * Run landmark detection. + * + * Value: "LANDMARK_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_LandmarkDetection; +/** + * Run logo detection. + * + * Value: "LOGO_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_LogoDetection; +/** + * Run localizer for object detection. + * + * Value: "OBJECT_LOCALIZATION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_ObjectLocalization; +/** + * Run Product Search. + * + * Value: "PRODUCT_SEARCH" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_ProductSearch; +/** + * Run Safe Search to detect potentially unsafe + * or undesirable content. + * + * Value: "SAFE_SEARCH_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_SafeSearchDetection; +/** + * Run text detection / optical character recognition (OCR). Text detection + * is optimized for areas of text within a larger image; if the image is + * a document, use `DOCUMENT_TEXT_DETECTION` instead. + * + * Value: "TEXT_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_TextDetection; +/** + * Unspecified feature type. + * + * Value: "TYPE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_TypeUnspecified; +/** + * Run web detection. + * + * Value: "WEB_DETECTION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Feature_Type_WebDetection; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1Block.blockType + +/** + * Barcode block. + * + * Value: "BARCODE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Barcode; +/** + * Image block. + * + * Value: "PICTURE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Picture; +/** + * Horizontal/vertical line box. + * + * Value: "RULER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Ruler; +/** + * Table block. + * + * Value: "TABLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Table; +/** + * Regular text block. + * + * Value: "TEXT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Text; +/** + * Unknown block type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.angerLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.blurredLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.headwearLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.joyLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.sorrowLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.surpriseLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation.underExposedLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark.type + +/** + * Chin gnathion. + * + * Value: "CHIN_GNATHION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinGnathion; +/** + * Chin left gonion. + * + * Value: "CHIN_LEFT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinLeftGonion; +/** + * Chin right gonion. + * + * Value: "CHIN_RIGHT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinRightGonion; +/** + * Forehead glabella. + * + * Value: "FOREHEAD_GLABELLA" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ForeheadGlabella; +/** + * Left ear tragion. + * + * Value: "LEFT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEarTragion; +/** + * Left eye. + * + * Value: "LEFT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEye; +/** + * Left eye, bottom boundary. + * + * Value: "LEFT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary; +/** + * Left eyebrow, upper midpoint. + * + * Value: "LEFT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint; +/** + * Left eye, left corner. + * + * Value: "LEFT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner; +/** + * Left eye pupil. + * + * Value: "LEFT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyePupil; +/** + * Left eye, right corner. + * + * Value: "LEFT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner; +/** + * Left eye, top boundary. + * + * Value: "LEFT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary; +/** + * Left of left eyebrow. + * + * Value: "LEFT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow; +/** + * Left of right eyebrow. + * + * Value: "LEFT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow; +/** + * Lower lip. + * + * Value: "LOWER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LowerLip; +/** + * Midpoint between eyes. + * + * Value: "MIDPOINT_BETWEEN_EYES" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes; +/** + * Mouth center. + * + * Value: "MOUTH_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthCenter; +/** + * Mouth left. + * + * Value: "MOUTH_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthLeft; +/** + * Mouth right. + * + * Value: "MOUTH_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthRight; +/** + * Nose, bottom center. + * + * Value: "NOSE_BOTTOM_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomCenter; +/** + * Nose, bottom left. + * + * Value: "NOSE_BOTTOM_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomLeft; +/** + * Nose, bottom right. + * + * Value: "NOSE_BOTTOM_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomRight; +/** + * Nose tip. + * + * Value: "NOSE_TIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseTip; +/** + * Right ear tragion. + * + * Value: "RIGHT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEarTragion; +/** + * Right eye. + * + * Value: "RIGHT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEye; +/** + * Right eye, bottom boundary. + * + * Value: "RIGHT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary; +/** + * Right eyebrow, upper midpoint. + * + * Value: "RIGHT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint; +/** + * Right eye, left corner. + * + * Value: "RIGHT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner; +/** + * Right eye pupil. + * + * Value: "RIGHT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyePupil; +/** + * Right eye, right corner. + * + * Value: "RIGHT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeRightCorner; +/** + * Right eye, top boundary. + * + * Value: "RIGHT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary; +/** + * Right of left eyebrow. + * + * Value: "RIGHT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow; +/** + * Right of right eyebrow. + * + * Value: "RIGHT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow; +/** + * Unknown face landmark detected. Should not be filled. + * + * Value: "UNKNOWN_LANDMARK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_UnknownLandmark; +/** + * Upper lip. + * + * Value: "UPPER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_UpperLip; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata.state + +/** + * The batch processing was cancelled. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Cancelled; +/** + * Request is received. + * + * Value: "CREATED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Created; +/** + * The batch processing is done. + * + * Value: "DONE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Done; +/** + * Request is actively being processed. + * + * Value: "RUNNING" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Running; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_StateUnspecified; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation.adult + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation.medical + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation.racy + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation.spoof + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation.violence + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak.type + +/** + * Line-wrapping break. + * + * Value: "EOL_SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_EolSureSpace; +/** + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. + * + * Value: "HYPHEN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Hyphen; +/** + * Line break that ends a paragraph. + * + * Value: "LINE_BREAK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_LineBreak; +/** + * Regular space. + * + * Value: "SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Space; +/** + * Sure space (very wide). + * + * Value: "SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_SureSpace; +/** + * Unknown break label type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1Block.blockType + +/** + * Barcode block. + * + * Value: "BARCODE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Barcode; +/** + * Image block. + * + * Value: "PICTURE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Picture; +/** + * Horizontal/vertical line box. + * + * Value: "RULER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Ruler; +/** + * Table block. + * + * Value: "TABLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Table; +/** + * Regular text block. + * + * Value: "TEXT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Text; +/** + * Unknown block type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.angerLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.blurredLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.headwearLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.joyLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.sorrowLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.surpriseLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation.underExposedLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark.type + +/** + * Chin gnathion. + * + * Value: "CHIN_GNATHION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinGnathion; +/** + * Chin left gonion. + * + * Value: "CHIN_LEFT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinLeftGonion; +/** + * Chin right gonion. + * + * Value: "CHIN_RIGHT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinRightGonion; +/** + * Forehead glabella. + * + * Value: "FOREHEAD_GLABELLA" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ForeheadGlabella; +/** + * Left ear tragion. + * + * Value: "LEFT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEarTragion; +/** + * Left eye. + * + * Value: "LEFT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEye; +/** + * Left eye, bottom boundary. + * + * Value: "LEFT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary; +/** + * Left eyebrow, upper midpoint. + * + * Value: "LEFT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint; +/** + * Left eye, left corner. + * + * Value: "LEFT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner; +/** + * Left eye pupil. + * + * Value: "LEFT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyePupil; +/** + * Left eye, right corner. + * + * Value: "LEFT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner; +/** + * Left eye, top boundary. + * + * Value: "LEFT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary; +/** + * Left of left eyebrow. + * + * Value: "LEFT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow; +/** + * Left of right eyebrow. + * + * Value: "LEFT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow; +/** + * Lower lip. + * + * Value: "LOWER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LowerLip; +/** + * Midpoint between eyes. + * + * Value: "MIDPOINT_BETWEEN_EYES" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes; +/** + * Mouth center. + * + * Value: "MOUTH_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthCenter; +/** + * Mouth left. + * + * Value: "MOUTH_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthLeft; +/** + * Mouth right. + * + * Value: "MOUTH_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthRight; +/** + * Nose, bottom center. + * + * Value: "NOSE_BOTTOM_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomCenter; +/** + * Nose, bottom left. + * + * Value: "NOSE_BOTTOM_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomLeft; +/** + * Nose, bottom right. + * + * Value: "NOSE_BOTTOM_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomRight; +/** + * Nose tip. + * + * Value: "NOSE_TIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseTip; +/** + * Right ear tragion. + * + * Value: "RIGHT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEarTragion; +/** + * Right eye. + * + * Value: "RIGHT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEye; +/** + * Right eye, bottom boundary. + * + * Value: "RIGHT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary; +/** + * Right eyebrow, upper midpoint. + * + * Value: "RIGHT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint; +/** + * Right eye, left corner. + * + * Value: "RIGHT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner; +/** + * Right eye pupil. + * + * Value: "RIGHT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyePupil; +/** + * Right eye, right corner. + * + * Value: "RIGHT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeRightCorner; +/** + * Right eye, top boundary. + * + * Value: "RIGHT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary; +/** + * Right of left eyebrow. + * + * Value: "RIGHT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow; +/** + * Right of right eyebrow. + * + * Value: "RIGHT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow; +/** + * Unknown face landmark detected. Should not be filled. + * + * Value: "UNKNOWN_LANDMARK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_UnknownLandmark; +/** + * Upper lip. + * + * Value: "UPPER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_UpperLip; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata.state + +/** + * The batch processing was cancelled. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Cancelled; +/** + * Request is received. + * + * Value: "CREATED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Created; +/** + * The batch processing is done. + * + * Value: "DONE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Done; +/** + * Request is actively being processed. + * + * Value: "RUNNING" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Running; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_StateUnspecified; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation.adult + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation.medical + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation.racy + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation.spoof + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation.violence + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak.type + +/** + * Line-wrapping break. + * + * Value: "EOL_SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_EolSureSpace; +/** + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. + * + * Value: "HYPHEN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Hyphen; +/** + * Line break that ends a paragraph. + * + * Value: "LINE_BREAK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_LineBreak; +/** + * Regular space. + * + * Value: "SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Space; +/** + * Sure space (very wide). + * + * Value: "SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_SureSpace; +/** + * Unknown break label type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata.state + +/** + * The request is done after the longrunning.Operations.CancelOperation has + * been called by the user. Any records that were processed before the + * cancel command are output as specified in the request. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Cancelled; +/** + * The request is done and no item has been successfully processed. + * + * Value: "FAILED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Failed; +/** + * Request is actively being processed. + * + * Value: "PROCESSING" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Processing; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_StateUnspecified; +/** + * The request is done and at least one item has been successfully + * processed. + * + * Value: "SUCCESSFUL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Successful; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1Block.blockType + +/** + * Barcode block. + * + * Value: "BARCODE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Barcode; +/** + * Image block. + * + * Value: "PICTURE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Picture; +/** + * Horizontal/vertical line box. + * + * Value: "RULER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Ruler; +/** + * Table block. + * + * Value: "TABLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Table; +/** + * Regular text block. + * + * Value: "TEXT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Text; +/** + * Unknown block type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.angerLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.blurredLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.headwearLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.joyLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.sorrowLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.surpriseLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation.underExposedLikelihood + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark.type + +/** + * Chin gnathion. + * + * Value: "CHIN_GNATHION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinGnathion; +/** + * Chin left gonion. + * + * Value: "CHIN_LEFT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinLeftGonion; +/** + * Chin right gonion. + * + * Value: "CHIN_RIGHT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinRightGonion; +/** + * Forehead glabella. + * + * Value: "FOREHEAD_GLABELLA" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ForeheadGlabella; +/** + * Left ear tragion. + * + * Value: "LEFT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEarTragion; +/** + * Left eye. + * + * Value: "LEFT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEye; +/** + * Left eye, bottom boundary. + * + * Value: "LEFT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary; +/** + * Left eyebrow, upper midpoint. + * + * Value: "LEFT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint; +/** + * Left eye, left corner. + * + * Value: "LEFT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner; +/** + * Left eye pupil. + * + * Value: "LEFT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyePupil; +/** + * Left eye, right corner. + * + * Value: "LEFT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner; +/** + * Left eye, top boundary. + * + * Value: "LEFT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary; +/** + * Left of left eyebrow. + * + * Value: "LEFT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow; +/** + * Left of right eyebrow. + * + * Value: "LEFT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow; +/** + * Lower lip. + * + * Value: "LOWER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LowerLip; +/** + * Midpoint between eyes. + * + * Value: "MIDPOINT_BETWEEN_EYES" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes; +/** + * Mouth center. + * + * Value: "MOUTH_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthCenter; +/** + * Mouth left. + * + * Value: "MOUTH_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthLeft; +/** + * Mouth right. + * + * Value: "MOUTH_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthRight; +/** + * Nose, bottom center. + * + * Value: "NOSE_BOTTOM_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomCenter; +/** + * Nose, bottom left. + * + * Value: "NOSE_BOTTOM_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomLeft; +/** + * Nose, bottom right. + * + * Value: "NOSE_BOTTOM_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomRight; +/** + * Nose tip. + * + * Value: "NOSE_TIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseTip; +/** + * Right ear tragion. + * + * Value: "RIGHT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEarTragion; +/** + * Right eye. + * + * Value: "RIGHT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEye; +/** + * Right eye, bottom boundary. + * + * Value: "RIGHT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary; +/** + * Right eyebrow, upper midpoint. + * + * Value: "RIGHT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint; +/** + * Right eye, left corner. + * + * Value: "RIGHT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner; +/** + * Right eye pupil. + * + * Value: "RIGHT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyePupil; +/** + * Right eye, right corner. + * + * Value: "RIGHT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeRightCorner; +/** + * Right eye, top boundary. + * + * Value: "RIGHT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary; +/** + * Right of left eyebrow. + * + * Value: "RIGHT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow; +/** + * Right of right eyebrow. + * + * Value: "RIGHT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow; +/** + * Unknown face landmark detected. Should not be filled. + * + * Value: "UNKNOWN_LANDMARK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_UnknownLandmark; +/** + * Upper lip. + * + * Value: "UPPER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_UpperLip; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata.state + +/** + * The batch processing was cancelled. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Cancelled; +/** + * Request is received. + * + * Value: "CREATED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Created; +/** + * The batch processing is done. + * + * Value: "DONE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Done; +/** + * Request is actively being processed. + * + * Value: "RUNNING" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Running; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_StateUnspecified; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation.adult + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation.medical + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation.racy + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation.spoof + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation.violence + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak.type + +/** + * Line-wrapping break. + * + * Value: "EOL_SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_EolSureSpace; +/** + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. + * + * Value: "HYPHEN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Hyphen; +/** + * Line break that ends a paragraph. + * + * Value: "LINE_BREAK" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_LineBreak; +/** + * Regular space. + * + * Value: "SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Space; +/** + * Sure space (very wide). + * + * Value: "SURE_SPACE" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_SureSpace; +/** + * Unknown break label type. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Unknown; + +// ---------------------------------------------------------------------------- +// GTLRVision_Landmark.type + +/** + * Chin gnathion. + * + * Value: "CHIN_GNATHION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_ChinGnathion; +/** + * Chin left gonion. + * + * Value: "CHIN_LEFT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_ChinLeftGonion; +/** + * Chin right gonion. + * + * Value: "CHIN_RIGHT_GONION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_ChinRightGonion; +/** + * Forehead glabella. + * + * Value: "FOREHEAD_GLABELLA" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_ForeheadGlabella; +/** + * Left ear tragion. + * + * Value: "LEFT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEarTragion; +/** + * Left eye. + * + * Value: "LEFT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEye; +/** + * Left eye, bottom boundary. + * + * Value: "LEFT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyeBottomBoundary; +/** + * Left eyebrow, upper midpoint. + * + * Value: "LEFT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyebrowUpperMidpoint; +/** + * Left eye, left corner. + * + * Value: "LEFT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyeLeftCorner; +/** + * Left eye pupil. + * + * Value: "LEFT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyePupil; +/** + * Left eye, right corner. + * + * Value: "LEFT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyeRightCorner; +/** + * Left eye, top boundary. + * + * Value: "LEFT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftEyeTopBoundary; +/** + * Left of left eyebrow. + * + * Value: "LEFT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftOfLeftEyebrow; +/** + * Left of right eyebrow. + * + * Value: "LEFT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LeftOfRightEyebrow; +/** + * Lower lip. + * + * Value: "LOWER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_LowerLip; +/** + * Midpoint between eyes. + * + * Value: "MIDPOINT_BETWEEN_EYES" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_MidpointBetweenEyes; +/** + * Mouth center. + * + * Value: "MOUTH_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_MouthCenter; +/** + * Mouth left. + * + * Value: "MOUTH_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_MouthLeft; +/** + * Mouth right. + * + * Value: "MOUTH_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_MouthRight; +/** + * Nose, bottom center. + * + * Value: "NOSE_BOTTOM_CENTER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_NoseBottomCenter; +/** + * Nose, bottom left. + * + * Value: "NOSE_BOTTOM_LEFT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_NoseBottomLeft; +/** + * Nose, bottom right. + * + * Value: "NOSE_BOTTOM_RIGHT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_NoseBottomRight; +/** + * Nose tip. + * + * Value: "NOSE_TIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_NoseTip; +/** + * Right ear tragion. + * + * Value: "RIGHT_EAR_TRAGION" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEarTragion; +/** + * Right eye. + * + * Value: "RIGHT_EYE" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEye; +/** + * Right eye, bottom boundary. + * + * Value: "RIGHT_EYE_BOTTOM_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyeBottomBoundary; +/** + * Right eyebrow, upper midpoint. + * + * Value: "RIGHT_EYEBROW_UPPER_MIDPOINT" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyebrowUpperMidpoint; +/** + * Right eye, left corner. + * + * Value: "RIGHT_EYE_LEFT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyeLeftCorner; +/** + * Right eye pupil. + * + * Value: "RIGHT_EYE_PUPIL" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyePupil; +/** + * Right eye, right corner. + * + * Value: "RIGHT_EYE_RIGHT_CORNER" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyeRightCorner; +/** + * Right eye, top boundary. + * + * Value: "RIGHT_EYE_TOP_BOUNDARY" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightEyeTopBoundary; +/** + * Right of left eyebrow. + * + * Value: "RIGHT_OF_LEFT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightOfLeftEyebrow; +/** + * Right of right eyebrow. + * + * Value: "RIGHT_OF_RIGHT_EYEBROW" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_RightOfRightEyebrow; +/** + * Unknown face landmark detected. Should not be filled. + * + * Value: "UNKNOWN_LANDMARK" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_UnknownLandmark; +/** + * Upper lip. + * + * Value: "UPPER_LIP" + */ +GTLR_EXTERN NSString * const kGTLRVision_Landmark_Type_UpperLip; + +// ---------------------------------------------------------------------------- +// GTLRVision_OperationMetadata.state + +/** + * The batch processing was cancelled. + * + * Value: "CANCELLED" + */ +GTLR_EXTERN NSString * const kGTLRVision_OperationMetadata_State_Cancelled; +/** + * Request is received. + * + * Value: "CREATED" + */ +GTLR_EXTERN NSString * const kGTLRVision_OperationMetadata_State_Created; +/** + * The batch processing is done. + * + * Value: "DONE" + */ +GTLR_EXTERN NSString * const kGTLRVision_OperationMetadata_State_Done; +/** + * Request is actively being processed. + * + * Value: "RUNNING" + */ +GTLR_EXTERN NSString * const kGTLRVision_OperationMetadata_State_Running; +/** + * Invalid. + * + * Value: "STATE_UNSPECIFIED" + */ +GTLR_EXTERN NSString * const kGTLRVision_OperationMetadata_State_StateUnspecified; + +// ---------------------------------------------------------------------------- +// GTLRVision_SafeSearchAnnotation.adult + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Adult_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_SafeSearchAnnotation.medical + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Medical_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_SafeSearchAnnotation.racy + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Racy_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_SafeSearchAnnotation.spoof + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Spoof_VeryUnlikely; + +// ---------------------------------------------------------------------------- +// GTLRVision_SafeSearchAnnotation.violence + +/** + * It is likely that the image belongs to the specified vertical. + * + * Value: "LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_Likely; +/** + * It is possible that the image belongs to the specified vertical. + * + * Value: "POSSIBLE" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_Possible; +/** + * Unknown likelihood. + * + * Value: "UNKNOWN" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_Unknown; +/** + * It is unlikely that the image belongs to the specified vertical. + * + * Value: "UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_Unlikely; +/** + * It is very likely that the image belongs to the specified vertical. + * + * Value: "VERY_LIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_VeryLikely; +/** + * It is very unlikely that the image belongs to the specified vertical. + * + * Value: "VERY_UNLIKELY" + */ +GTLR_EXTERN NSString * const kGTLRVision_SafeSearchAnnotation_Violence_VeryUnlikely; + +/** + * Request message for the `AddProductToProductSet` method. + */ +@interface GTLRVision_AddProductToProductSetRequest : GTLRObject + +/** + * The resource name for the Product to be added to this ProductSet. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + */ +@property(nonatomic, copy, nullable) NSString *product; + +@end + + +/** + * Response to a single file annotation request. A file may contain one or more + * images, which individually have their own responses. + */ +@interface GTLRVision_AnnotateFileResponse : GTLRObject + +/** Information about the file for which this response is generated. */ +@property(nonatomic, strong, nullable) GTLRVision_InputConfig *inputConfig; + +/** Individual responses to images found within the file. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_AnnotateImageResponse *> *responses; + +@end + + +/** + * Request for performing Google Cloud Vision API tasks over a user-provided + * image, with user-requested features. + */ +@interface GTLRVision_AnnotateImageRequest : GTLRObject + +/** Requested features. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Feature *> *features; + +/** The image to be processed. */ +@property(nonatomic, strong, nullable) GTLRVision_Image *image; + +/** Additional context that may accompany the image. */ +@property(nonatomic, strong, nullable) GTLRVision_ImageContext *imageContext; + +@end + + +/** + * Response to an image annotation request. + */ +@interface GTLRVision_AnnotateImageResponse : GTLRObject + +/** + * If present, contextual information is needed to understand where this image + * comes from. + */ +@property(nonatomic, strong, nullable) GTLRVision_ImageAnnotationContext *context; + +/** If present, crop hints have completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_CropHintsAnnotation *cropHintsAnnotation; + +/** + * If set, represents the error message for the operation. + * Note that filled-in image annotations are guaranteed to be + * correct, even when `error` is set. + */ +@property(nonatomic, strong, nullable) GTLRVision_Status *error; + +/** If present, face detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_FaceAnnotation *> *faceAnnotations; + +/** + * If present, text (OCR) detection or document (OCR) text detection has + * completed successfully. + * This annotation provides the structural hierarchy for the OCR detected + * text. + */ +@property(nonatomic, strong, nullable) GTLRVision_TextAnnotation *fullTextAnnotation; + +/** If present, image properties were extracted successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_ImageProperties *imagePropertiesAnnotation; + +/** If present, label detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_EntityAnnotation *> *labelAnnotations; + +/** If present, landmark detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_EntityAnnotation *> *landmarkAnnotations; + +/** + * If present, localized object detection has completed successfully. + * This will be sorted descending by confidence score. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_LocalizedObjectAnnotation *> *localizedObjectAnnotations; + +/** If present, logo detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_EntityAnnotation *> *logoAnnotations; + +/** If present, product search has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_ProductSearchResults *productSearchResults; + +/** If present, safe-search annotation has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_SafeSearchAnnotation *safeSearchAnnotation; + +/** If present, text (OCR) detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_EntityAnnotation *> *textAnnotations; + +/** If present, web detection has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_WebDetection *webDetection; + +@end + + +/** + * An offline file annotation request. + */ +@interface GTLRVision_AsyncAnnotateFileRequest : GTLRObject + +/** Required. Requested features. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Feature *> *features; + +/** Additional context that may accompany the image(s) in the file. */ +@property(nonatomic, strong, nullable) GTLRVision_ImageContext *imageContext; + +/** Required. Information about the input file. */ +@property(nonatomic, strong, nullable) GTLRVision_InputConfig *inputConfig; + +/** Required. The desired output location and metadata (e.g. format). */ +@property(nonatomic, strong, nullable) GTLRVision_OutputConfig *outputConfig; + +@end + + +/** + * The response for a single offline file annotation request. + */ +@interface GTLRVision_AsyncAnnotateFileResponse : GTLRObject + +/** The output location and metadata from AsyncAnnotateFileRequest. */ +@property(nonatomic, strong, nullable) GTLRVision_OutputConfig *outputConfig; + +@end + + +/** + * Multiple async file annotation requests are batched into a single service + * call. + */ +@interface GTLRVision_AsyncBatchAnnotateFilesRequest : GTLRObject + +/** Individual async file annotation requests for this batch. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_AsyncAnnotateFileRequest *> *requests; + +@end + + +/** + * Response to an async batch file annotation request. + */ +@interface GTLRVision_AsyncBatchAnnotateFilesResponse : GTLRObject + +/** + * The list of file annotation responses, one for each request in + * AsyncBatchAnnotateFilesRequest. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_AsyncAnnotateFileResponse *> *responses; + +@end + + +/** + * Multiple image annotation requests are batched into a single service call. + */ +@interface GTLRVision_BatchAnnotateImagesRequest : GTLRObject + +/** Individual image annotation requests for this batch. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_AnnotateImageRequest *> *requests; + +@end + + +/** + * Response to a batch image annotation request. + */ +@interface GTLRVision_BatchAnnotateImagesResponse : GTLRObject + +/** Individual responses to image annotation requests within the batch. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_AnnotateImageResponse *> *responses; + +@end + + +/** + * Metadata for the batch operations such as the current state. + * This is included in the `metadata` field of the `Operation` returned by the + * `GetOperation` call of the `google::longrunning::Operations` service. + */ +@interface GTLRVision_BatchOperationMetadata : GTLRObject + +/** + * The time when the batch request is finished and + * google.longrunning.Operation.done is set to true. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *endTime; + +/** + * The current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_BatchOperationMetadata_State_Cancelled The request is + * done after the longrunning.Operations.CancelOperation has + * been called by the user. Any records that were processed before the + * cancel command are output as specified in the request. (Value: + * "CANCELLED") + * @arg @c kGTLRVision_BatchOperationMetadata_State_Failed The request is + * done and no item has been successfully processed. (Value: "FAILED") + * @arg @c kGTLRVision_BatchOperationMetadata_State_Processing Request is + * actively being processed. (Value: "PROCESSING") + * @arg @c kGTLRVision_BatchOperationMetadata_State_StateUnspecified Invalid. + * (Value: "STATE_UNSPECIFIED") + * @arg @c kGTLRVision_BatchOperationMetadata_State_Successful The request is + * done and at least one item has been successfully + * processed. (Value: "SUCCESSFUL") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the batch request was submitted to the server. */ +@property(nonatomic, strong, nullable) GTLRDateTime *submitTime; + +@end + + +/** + * Logical element on the page. + */ +@interface GTLRVision_Block : GTLRObject + +/** + * Detected block type (text, image etc) for this block. + * + * Likely values: + * @arg @c kGTLRVision_Block_BlockType_Barcode Barcode block. (Value: + * "BARCODE") + * @arg @c kGTLRVision_Block_BlockType_Picture Image block. (Value: + * "PICTURE") + * @arg @c kGTLRVision_Block_BlockType_Ruler Horizontal/vertical line box. + * (Value: "RULER") + * @arg @c kGTLRVision_Block_BlockType_Table Table block. (Value: "TABLE") + * @arg @c kGTLRVision_Block_BlockType_Text Regular text block. (Value: + * "TEXT") + * @arg @c kGTLRVision_Block_BlockType_Unknown Unknown block type. (Value: + * "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *blockType; + +/** + * The bounding box for the block. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results on the block. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** List of paragraphs in this block (if this blocks is of type text). */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Paragraph *> *paragraphs; + +/** Additional information detected for the block. */ +@property(nonatomic, strong, nullable) GTLRVision_TextProperty *property; + +@end + + +/** + * A bounding polygon for the detected image annotation. + */ +@interface GTLRVision_BoundingPoly : GTLRObject + +/** The bounding polygon normalized vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_NormalizedVertex *> *normalizedVertices; + +/** The bounding polygon vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Vertex *> *vertices; + +@end + + +/** + * The request message for Operations.CancelOperation. + */ +@interface GTLRVision_CancelOperationRequest : GTLRObject +@end + + +/** + * Represents a color in the RGBA color space. This representation is designed + * for simplicity of conversion to/from color representations in various + * languages over compactness; for example, the fields of this representation + * can be trivially provided to the constructor of "java.awt.Color" in Java; it + * can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" + * method in iOS; and, with just a little work, it can be easily formatted into + * a CSS "rgba()" string in JavaScript, as well. Here are some examples: + * Example (Java): + * import com.google.type.Color; + * // ... + * public static java.awt.Color fromProto(Color protocolor) { + * float alpha = protocolor.hasAlpha() + * ? protocolor.getAlpha().getValue() + * : 1.0; + * return new java.awt.Color( + * protocolor.getRed(), + * protocolor.getGreen(), + * protocolor.getBlue(), + * alpha); + * } + * public static Color toProto(java.awt.Color color) { + * float red = (float) color.getRed(); + * float green = (float) color.getGreen(); + * float blue = (float) color.getBlue(); + * float denominator = 255.0; + * Color.Builder resultBuilder = + * Color + * .newBuilder() + * .setRed(red / denominator) + * .setGreen(green / denominator) + * .setBlue(blue / denominator); + * int alpha = color.getAlpha(); + * if (alpha != 255) { + * result.setAlpha( + * FloatValue + * .newBuilder() + * .setValue(((float) alpha) / denominator) + * .build()); + * } + * return resultBuilder.build(); + * } + * // ... + * Example (iOS / Obj-C): + * // ... + * static UIColor* fromProto(Color* protocolor) { + * float red = [protocolor red]; + * float green = [protocolor green]; + * float blue = [protocolor blue]; + * FloatValue* alpha_wrapper = [protocolor alpha]; + * float alpha = 1.0; + * if (alpha_wrapper != nil) { + * alpha = [alpha_wrapper value]; + * } + * return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; + * } + * static Color* toProto(UIColor* color) { + * CGFloat red, green, blue, alpha; + * if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { + * return nil; + * } + * Color* result = [[Color alloc] init]; + * [result setRed:red]; + * [result setGreen:green]; + * [result setBlue:blue]; + * if (alpha <= 0.9999) { + * [result setAlpha:floatWrapperWithValue(alpha)]; + * } + * [result autorelease]; + * return result; + * } + * // ... + * Example (JavaScript): + * // ... + * var protoToCssColor = function(rgb_color) { + * var redFrac = rgb_color.red || 0.0; + * var greenFrac = rgb_color.green || 0.0; + * var blueFrac = rgb_color.blue || 0.0; + * var red = Math.floor(redFrac * 255); + * var green = Math.floor(greenFrac * 255); + * var blue = Math.floor(blueFrac * 255); + * if (!('alpha' in rgb_color)) { + * return rgbToCssColor_(red, green, blue); + * } + * var alphaFrac = rgb_color.alpha.value || 0.0; + * var rgbParams = [red, green, blue].join(','); + * return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); + * }; + * var rgbToCssColor_ = function(red, green, blue) { + * var rgbNumber = new Number((red << 16) | (green << 8) | blue); + * var hexString = rgbNumber.toString(16); + * var missingZeros = 6 - hexString.length; + * var resultBuilder = ['#']; + * for (var i = 0; i < missingZeros; i++) { + * resultBuilder.push('0'); + * } + * resultBuilder.push(hexString); + * return resultBuilder.join(''); + * }; + * // ... + */ +@interface GTLRVision_Color : GTLRObject + +/** + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * pixel color = alpha * (this color) + (1.0 - alpha) * (background color) + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is to be rendered as a solid color + * (as if the alpha value had been explicitly given with a value of 1.0). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *alpha; + +/** + * The amount of blue in the color as a value in the interval [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *blue; + +/** + * The amount of green in the color as a value in the interval [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *green; + +/** + * The amount of red in the color as a value in the interval [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *red; + +@end + + +/** + * Color information consists of RGB channels, score, and the fraction of + * the image that the color occupies in the image. + */ +@interface GTLRVision_ColorInfo : GTLRObject + +/** RGB components of the color. */ +@property(nonatomic, strong, nullable) GTLRVision_Color *color; + +/** + * The fraction of pixels the color occupies in the image. + * Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pixelFraction; + +/** + * Image-specific score for this color. Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Single crop hint that is used to generate a new crop when serving an image. + */ +@interface GTLRVision_CropHint : GTLRObject + +/** + * The bounding polygon for the crop region. The coordinates of the bounding + * box are in the original image's scale. + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** + * Confidence of this being a salient region. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Fraction of importance of this salient region with respect to the original + * image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *importanceFraction; + +@end + + +/** + * Set of crop hints that are used to generate new crops when serving images. + */ +@interface GTLRVision_CropHintsAnnotation : GTLRObject + +/** Crop hint results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_CropHint *> *cropHints; + +@end + + +/** + * Parameters for crop hints annotation request. + */ +@interface GTLRVision_CropHintsParams : GTLRObject + +/** + * Aspect ratios in floats, representing the ratio of the width to the height + * of the image. For example, if the desired aspect ratio is 4/3, the + * corresponding float value should be 1.33333. If not specified, the + * best possible crop is returned. The number of provided aspect ratios is + * limited to a maximum of 16; any aspect ratios provided after the 16th are + * ignored. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSArray<NSNumber *> *aspectRatios; + +@end + + +/** + * Detected start or end of a structural component. + */ +@interface GTLRVision_DetectedBreak : GTLRObject + +/** + * True if break prepends the element. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *isPrefix; + +/** + * Detected break type. + * + * Likely values: + * @arg @c kGTLRVision_DetectedBreak_Type_EolSureSpace Line-wrapping break. + * (Value: "EOL_SURE_SPACE") + * @arg @c kGTLRVision_DetectedBreak_Type_Hyphen End-line hyphen that is not + * present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. (Value: "HYPHEN") + * @arg @c kGTLRVision_DetectedBreak_Type_LineBreak Line break that ends a + * paragraph. (Value: "LINE_BREAK") + * @arg @c kGTLRVision_DetectedBreak_Type_Space Regular space. (Value: + * "SPACE") + * @arg @c kGTLRVision_DetectedBreak_Type_SureSpace Sure space (very wide). + * (Value: "SURE_SPACE") + * @arg @c kGTLRVision_DetectedBreak_Type_Unknown Unknown break label type. + * (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * Detected language for a structural component. + */ +@interface GTLRVision_DetectedLanguage : GTLRObject + +/** + * Confidence of detected language. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Set of dominant colors and their corresponding scores. + */ +@interface GTLRVision_DominantColorsAnnotation : GTLRObject + +/** RGB color values with their score and pixel fraction. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_ColorInfo *> *colors; + +@end + + +/** + * A generic empty message that you can re-use to avoid defining duplicated + * empty messages in your APIs. A typical example is to use it as the request + * or the response type of an API method. For instance: + * service Foo { + * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + * } + * The JSON representation for `Empty` is empty JSON object `{}`. + */ +@interface GTLRVision_Empty : GTLRObject +@end + + +/** + * Set of detected entity features. + */ +@interface GTLRVision_EntityAnnotation : GTLRObject + +/** + * Image region to which this entity belongs. Not produced + * for `LABEL_DETECTION` features. + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** + * **Deprecated. Use `score` instead.** + * The accuracy of the entity detection in an image. + * For example, for an image in which the "Eiffel Tower" entity is detected, + * this field represents the confidence that there is a tower in the query + * image. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Entity textual description, expressed in its `locale` language. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The language code for the locale in which the entity textual + * `description` is expressed. + */ +@property(nonatomic, copy, nullable) NSString *locale; + +/** + * The location information for the detected entity. Multiple + * `LocationInfo` elements can be present because one location may + * indicate the location of the scene in the image, and another location + * may indicate the location of the place where the image was taken. + * Location information is usually present for landmarks. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_LocationInfo *> *locations; + +/** + * Opaque entity ID. Some IDs may be available in + * [Google Knowledge Graph Search + * API](https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** + * Some entities may have optional user-supplied `Property` (name/value) + * fields, such a score or string that qualifies the entity. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Property *> *properties; + +/** + * Overall score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** + * The relevancy of the ICA (Image Content Annotation) label to the + * image. For example, the relevancy of "tower" is likely higher to an image + * containing the detected "Eiffel Tower" than to an image containing a + * detected distant towering building, even though the confidence that + * there is a tower in each image may be the same. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *topicality; + +@end + + +/** + * A face annotation object contains the results of face detection. + */ +@interface GTLRVision_FaceAnnotation : GTLRObject + +/** + * Anger likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_Likely It is likely + * that the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_AngerLikelihood_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *angerLikelihood; + +/** + * Blurred likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_Likely It is likely + * that the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_Possible It is + * possible that the image belongs to the specified vertical. (Value: + * "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_Unlikely It is + * unlikely that the image belongs to the specified vertical. (Value: + * "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_BlurredLikelihood_VeryUnlikely It is + * very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *blurredLikelihood; + +/** + * The bounding polygon around the face. The coordinates of the bounding box + * are in the original image's scale. + * The bounding box is computed to "frame" the face in accordance with human + * expectations. It is based on the landmarker results. + * Note that one or more x and/or y coordinates may not be generated in the + * `BoundingPoly` (the polygon will be unbounded) if only a partial face + * appears in the image to be annotated. + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** + * Detection confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *detectionConfidence; + +/** + * The `fd_bounding_poly` bounding polygon is tighter than the + * `boundingPoly`, and encloses only the skin part of the face. Typically, it + * is used to eliminate the face from any image analysis that detects the + * "amount of skin" visible in an image. It is not based on the + * landmarker results, only on the initial face detection, hence + * the <code>fd</code> (face detection) prefix. + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *fdBoundingPoly; + +/** + * Headwear likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_Likely It is likely + * that the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_Possible It is + * possible that the image belongs to the specified vertical. (Value: + * "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_Unlikely It is + * unlikely that the image belongs to the specified vertical. (Value: + * "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_VeryLikely It is + * very likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_HeadwearLikelihood_VeryUnlikely It is + * very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *headwearLikelihood; + +/** + * Joy likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_Likely It is likely that + * the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_JoyLikelihood_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *joyLikelihood; + +/** + * Face landmarking confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *landmarkingConfidence; + +/** Detected face landmarks. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Landmark *> *landmarks; + +/** + * Yaw angle, which indicates the leftward/rightward angle that the face is + * pointing relative to the vertical plane perpendicular to the image. Range + * [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *panAngle; + +/** + * Roll angle, which indicates the amount of clockwise/anti-clockwise rotation + * of the face relative to the image vertical about the axis perpendicular to + * the face. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *rollAngle; + +/** + * Sorrow likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_Likely It is likely + * that the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_Possible It is + * possible that the image belongs to the specified vertical. (Value: + * "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_Unlikely It is + * unlikely that the image belongs to the specified vertical. (Value: + * "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SorrowLikelihood_VeryUnlikely It is + * very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *sorrowLikelihood; + +/** + * Surprise likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_Likely It is likely + * that the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_Possible It is + * possible that the image belongs to the specified vertical. (Value: + * "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_Unlikely It is + * unlikely that the image belongs to the specified vertical. (Value: + * "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_VeryLikely It is + * very likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_SurpriseLikelihood_VeryUnlikely It is + * very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *surpriseLikelihood; + +/** + * Pitch angle, which indicates the upwards/downwards angle that the face is + * pointing relative to the image's horizontal plane. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *tiltAngle; + +/** + * Under-exposed likelihood. + * + * Likely values: + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Likely It is + * likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Possible It is + * possible that the image belongs to the specified vertical. (Value: + * "POSSIBLE") + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_Unlikely It is + * unlikely that the image belongs to the specified vertical. (Value: + * "UNLIKELY") + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_VeryLikely It is + * very likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_FaceAnnotation_UnderExposedLikelihood_VeryUnlikely It + * is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *underExposedLikelihood; + +@end + + +/** + * The type of Google Cloud Vision API detection to perform, and the maximum + * number of results to return for that type. Multiple `Feature` objects can + * be specified in the `features` list. + */ +@interface GTLRVision_Feature : GTLRObject + +/** + * Maximum number of results of this type. Does not apply to + * `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *maxResults; + +/** + * Model to use for the feature. + * Supported values: "builtin/stable" (the default if unset) and + * "builtin/latest". + */ +@property(nonatomic, copy, nullable) NSString *model; + +/** + * The feature type. + * + * Likely values: + * @arg @c kGTLRVision_Feature_Type_CropHints Run crop hints. (Value: + * "CROP_HINTS") + * @arg @c kGTLRVision_Feature_Type_DocumentTextDetection Run dense text + * document OCR. Takes precedence when both + * `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present. (Value: + * "DOCUMENT_TEXT_DETECTION") + * @arg @c kGTLRVision_Feature_Type_FaceDetection Run face detection. (Value: + * "FACE_DETECTION") + * @arg @c kGTLRVision_Feature_Type_ImageProperties Compute a set of image + * properties, such as the + * image's dominant colors. (Value: "IMAGE_PROPERTIES") + * @arg @c kGTLRVision_Feature_Type_LabelDetection Run label detection. + * (Value: "LABEL_DETECTION") + * @arg @c kGTLRVision_Feature_Type_LandmarkDetection Run landmark detection. + * (Value: "LANDMARK_DETECTION") + * @arg @c kGTLRVision_Feature_Type_LogoDetection Run logo detection. (Value: + * "LOGO_DETECTION") + * @arg @c kGTLRVision_Feature_Type_ObjectLocalization Run localizer for + * object detection. (Value: "OBJECT_LOCALIZATION") + * @arg @c kGTLRVision_Feature_Type_ProductSearch Run Product Search. (Value: + * "PRODUCT_SEARCH") + * @arg @c kGTLRVision_Feature_Type_SafeSearchDetection Run Safe Search to + * detect potentially unsafe + * or undesirable content. (Value: "SAFE_SEARCH_DETECTION") + * @arg @c kGTLRVision_Feature_Type_TextDetection Run text detection / + * optical character recognition (OCR). Text detection + * is optimized for areas of text within a larger image; if the image is + * a document, use `DOCUMENT_TEXT_DETECTION` instead. (Value: + * "TEXT_DETECTION") + * @arg @c kGTLRVision_Feature_Type_TypeUnspecified Unspecified feature type. + * (Value: "TYPE_UNSPECIFIED") + * @arg @c kGTLRVision_Feature_Type_WebDetection Run web detection. (Value: + * "WEB_DETECTION") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * The Google Cloud Storage location where the output will be written to. + */ +@interface GTLRVision_GcsDestination : GTLRObject + +/** + * Google Cloud Storage URI where the results will be stored. Results will + * be in JSON format and preceded by its corresponding input URI. This field + * can either represent a single file, or a prefix for multiple outputs. + * Prefixes must end in a `/`. + * Examples: + * * File: gs://bucket-name/filename.json + * * Prefix: gs://bucket-name/prefix/here/ + * * File: gs://bucket-name/prefix/here + * If multiple outputs, each response is still AnnotateFileResponse, each of + * which contains some subset of the full list of AnnotateImageResponse. + * Multiple outputs can happen if, for example, the output JSON is too large + * and overflows into multiple sharded files. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * The Google Cloud Storage location where the input will be read from. + */ +@interface GTLRVision_GcsSource : GTLRObject + +/** + * Google Cloud Storage URI for the input file. This must only be a + * Google Cloud Storage object. Wildcards are not currently supported. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Response to a single file annotation request. A file may contain one or more + * images, which individually have their own responses. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1AnnotateFileResponse : GTLRObject + +/** Information about the file for which this response is generated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1InputConfig *inputConfig; + +/** Individual responses to images found within the file. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1AnnotateImageResponse *> *responses; + +@end + + +/** + * Response to an image annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1AnnotateImageResponse : GTLRObject + +/** + * If present, contextual information is needed to understand where this image + * comes from. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1ImageAnnotationContext *context; + +/** If present, crop hints have completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1CropHintsAnnotation *cropHintsAnnotation; + +/** + * If set, represents the error message for the operation. + * Note that filled-in image annotations are guaranteed to be + * correct, even when `error` is set. + */ +@property(nonatomic, strong, nullable) GTLRVision_Status *error; + +/** If present, face detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation *> *faceAnnotations; + +/** + * If present, text (OCR) detection or document (OCR) text detection has + * completed successfully. + * This annotation provides the structural hierarchy for the OCR detected + * text. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotation *fullTextAnnotation; + +/** If present, image properties were extracted successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1ImageProperties *imagePropertiesAnnotation; + +/** If present, label detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation *> *labelAnnotations; + +/** If present, landmark detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation *> *landmarkAnnotations; + +/** + * If present, localized object detection has completed successfully. + * This will be sorted descending by confidence score. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation *> *localizedObjectAnnotations; + +/** If present, logo detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation *> *logoAnnotations; + +/** If present, product search has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResults *productSearchResults; + +/** If present, safe-search annotation has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation *safeSearchAnnotation; + +/** If present, text (OCR) detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation *> *textAnnotations; + +/** If present, web detection has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1WebDetection *webDetection; + +@end + + +/** + * The response for a single offline file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse : GTLRObject + +/** The output location and metadata from AsyncAnnotateFileRequest. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1OutputConfig *outputConfig; + +@end + + +/** + * Response to an async batch file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse : GTLRObject + +/** + * The list of file annotation responses, one for each request in + * AsyncBatchAnnotateFilesRequest. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse *> *responses; + +@end + + +/** + * Logical element on the page. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Block : GTLRObject + +/** + * Detected block type (text, image etc) for this block. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Barcode + * Barcode block. (Value: "BARCODE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Picture + * Image block. (Value: "PICTURE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Ruler + * Horizontal/vertical line box. (Value: "RULER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Table Table + * block. (Value: "TABLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Text Regular + * text block. (Value: "TEXT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1Block_BlockType_Unknown + * Unknown block type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *blockType; + +/** + * The bounding box for the block. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results on the block. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** List of paragraphs in this block (if this blocks is of type text). */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Paragraph *> *paragraphs; + +/** Additional information detected for the block. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty *property; + +@end + + +/** + * A bounding polygon for the detected image annotation. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly : GTLRObject + +/** The bounding polygon normalized vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1NormalizedVertex *> *normalizedVertices; + +/** The bounding polygon vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Vertex *> *vertices; + +@end + + +/** + * Color information consists of RGB channels, score, and the fraction of + * the image that the color occupies in the image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ColorInfo : GTLRObject + +/** RGB components of the color. */ +@property(nonatomic, strong, nullable) GTLRVision_Color *color; + +/** + * The fraction of pixels the color occupies in the image. + * Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pixelFraction; + +/** + * Image-specific score for this color. Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Single crop hint that is used to generate a new crop when serving an image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1CropHint : GTLRObject + +/** + * The bounding polygon for the crop region. The coordinates of the bounding + * box are in the original image's scale. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingPoly; + +/** + * Confidence of this being a salient region. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Fraction of importance of this salient region with respect to the original + * image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *importanceFraction; + +@end + + +/** + * Set of crop hints that are used to generate new crops when serving images. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1CropHintsAnnotation : GTLRObject + +/** Crop hint results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1CropHint *> *cropHints; + +@end + + +/** + * Set of dominant colors and their corresponding scores. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1DominantColorsAnnotation : GTLRObject + +/** RGB color values with their score and pixel fraction. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1ColorInfo *> *colors; + +@end + + +/** + * Set of detected entity features. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1EntityAnnotation : GTLRObject + +/** + * Image region to which this entity belongs. Not produced + * for `LABEL_DETECTION` features. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingPoly; + +/** + * **Deprecated. Use `score` instead.** + * The accuracy of the entity detection in an image. + * For example, for an image in which the "Eiffel Tower" entity is detected, + * this field represents the confidence that there is a tower in the query + * image. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Entity textual description, expressed in its `locale` language. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The language code for the locale in which the entity textual + * `description` is expressed. + */ +@property(nonatomic, copy, nullable) NSString *locale; + +/** + * The location information for the detected entity. Multiple + * `LocationInfo` elements can be present because one location may + * indicate the location of the scene in the image, and another location + * may indicate the location of the place where the image was taken. + * Location information is usually present for landmarks. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1LocationInfo *> *locations; + +/** + * Opaque entity ID. Some IDs may be available in + * [Google Knowledge Graph Search + * API](https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** + * Some entities may have optional user-supplied `Property` (name/value) + * fields, such a score or string that qualifies the entity. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Property *> *properties; + +/** + * Overall score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** + * The relevancy of the ICA (Image Content Annotation) label to the + * image. For example, the relevancy of "tower" is likely higher to an image + * containing the detected "Eiffel Tower" than to an image containing a + * detected distant towering building, even though the confidence that + * there is a tower in each image may be the same. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *topicality; + +@end + + +/** + * A face annotation object contains the results of face detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation : GTLRObject + +/** + * Anger likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_AngerLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *angerLikelihood; + +/** + * Blurred likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *blurredLikelihood; + +/** + * The bounding polygon around the face. The coordinates of the bounding box + * are in the original image's scale. + * The bounding box is computed to "frame" the face in accordance with human + * expectations. It is based on the landmarker results. + * Note that one or more x and/or y coordinates may not be generated in the + * `BoundingPoly` (the polygon will be unbounded) if only a partial face + * appears in the image to be annotated. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingPoly; + +/** + * Detection confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *detectionConfidence; + +/** + * The `fd_bounding_poly` bounding polygon is tighter than the + * `boundingPoly`, and encloses only the skin part of the face. Typically, it + * is used to eliminate the face from any image analysis that detects the + * "amount of skin" visible in an image. It is not based on the + * landmarker results, only on the initial face detection, hence + * the <code>fd</code> (face detection) prefix. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *fdBoundingPoly; + +/** + * Headwear likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *headwearLikelihood; + +/** + * Joy likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_JoyLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *joyLikelihood; + +/** + * Face landmarking confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *landmarkingConfidence; + +/** Detected face landmarks. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark *> *landmarks; + +/** + * Yaw angle, which indicates the leftward/rightward angle that the face is + * pointing relative to the vertical plane perpendicular to the image. Range + * [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *panAngle; + +/** + * Roll angle, which indicates the amount of clockwise/anti-clockwise rotation + * of the face relative to the image vertical about the axis perpendicular to + * the face. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *rollAngle; + +/** + * Sorrow likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *sorrowLikelihood; + +/** + * Surprise likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *surpriseLikelihood; + +/** + * Pitch angle, which indicates the upwards/downwards angle that the face is + * pointing relative to the image's horizontal plane. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *tiltAngle; + +/** + * Under-exposed likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *underExposedLikelihood; + +@end + + +/** + * A face-specific landmark (for example, a face feature). + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark : GTLRObject + +/** Face landmark position. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1Position *position; + +/** + * Face landmark type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinGnathion + * Chin gnathion. (Value: "CHIN_GNATHION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinLeftGonion + * Chin left gonion. (Value: "CHIN_LEFT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ChinRightGonion + * Chin right gonion. (Value: "CHIN_RIGHT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_ForeheadGlabella + * Forehead glabella. (Value: "FOREHEAD_GLABELLA") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEarTragion + * Left ear tragion. (Value: "LEFT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEye + * Left eye. (Value: "LEFT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary + * Left eye, bottom boundary. (Value: "LEFT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint + * Left eyebrow, upper midpoint. (Value: "LEFT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner + * Left eye, left corner. (Value: "LEFT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyePupil + * Left eye pupil. (Value: "LEFT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner + * Left eye, right corner. (Value: "LEFT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary + * Left eye, top boundary. (Value: "LEFT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow + * Left of left eyebrow. (Value: "LEFT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow + * Left of right eyebrow. (Value: "LEFT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_LowerLip + * Lower lip. (Value: "LOWER_LIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes + * Midpoint between eyes. (Value: "MIDPOINT_BETWEEN_EYES") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthCenter + * Mouth center. (Value: "MOUTH_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthLeft + * Mouth left. (Value: "MOUTH_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_MouthRight + * Mouth right. (Value: "MOUTH_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomCenter + * Nose, bottom center. (Value: "NOSE_BOTTOM_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomLeft + * Nose, bottom left. (Value: "NOSE_BOTTOM_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseBottomRight + * Nose, bottom right. (Value: "NOSE_BOTTOM_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_NoseTip + * Nose tip. (Value: "NOSE_TIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEarTragion + * Right ear tragion. (Value: "RIGHT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEye + * Right eye. (Value: "RIGHT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary + * Right eye, bottom boundary. (Value: "RIGHT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint + * Right eyebrow, upper midpoint. (Value: "RIGHT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner + * Right eye, left corner. (Value: "RIGHT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyePupil + * Right eye pupil. (Value: "RIGHT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeRightCorner + * Right eye, right corner. (Value: "RIGHT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary + * Right eye, top boundary. (Value: "RIGHT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow + * Right of left eyebrow. (Value: "RIGHT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow + * Right of right eyebrow. (Value: "RIGHT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_UnknownLandmark + * Unknown face landmark detected. Should not be filled. (Value: + * "UNKNOWN_LANDMARK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1FaceAnnotationLandmark_Type_UpperLip + * Upper lip. (Value: "UPPER_LIP") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * The Google Cloud Storage location where the output will be written to. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1GcsDestination : GTLRObject + +/** + * Google Cloud Storage URI where the results will be stored. Results will + * be in JSON format and preceded by its corresponding input URI. This field + * can either represent a single file, or a prefix for multiple outputs. + * Prefixes must end in a `/`. + * Examples: + * * File: gs://bucket-name/filename.json + * * Prefix: gs://bucket-name/prefix/here/ + * * File: gs://bucket-name/prefix/here + * If multiple outputs, each response is still AnnotateFileResponse, each of + * which contains some subset of the full list of AnnotateImageResponse. + * Multiple outputs can happen if, for example, the output JSON is too large + * and overflows into multiple sharded files. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * The Google Cloud Storage location where the input will be read from. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1GcsSource : GTLRObject + +/** + * Google Cloud Storage URI for the input file. This must only be a + * Google Cloud Storage object. Wildcards are not currently supported. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * If an image was produced from a file (e.g. a PDF), this message gives + * information about the source of that image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ImageAnnotationContext : GTLRObject + +/** + * If the file was a PDF or TIFF, this field gives the page number within + * the file used to produce the image. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pageNumber; + +/** The URI of the file used to produce the image. */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Stores image properties, such as dominant colors. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ImageProperties : GTLRObject + +/** If present, dominant colors completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1DominantColorsAnnotation *dominantColors; + +@end + + +/** + * The desired input location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1InputConfig : GTLRObject + +/** The Google Cloud Storage location to read the input from. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1GcsSource *gcsSource; + +/** + * The type of the file. Currently only "application/pdf" and "image/tiff" + * are supported. Wildcards are not supported. + */ +@property(nonatomic, copy, nullable) NSString *mimeType; + +@end + + +/** + * Set of detected objects with bounding boxes. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation : GTLRObject + +/** Image region to which this object belongs. This must be populated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingPoly; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +/** Object ID that should align with EntityAnnotation mid. */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** Object name, expressed in its `language_code` language. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Detected entity location information. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1LocationInfo : GTLRObject + +/** lat/long location coordinates. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *latLng; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the normalized vertex coordinates are relative to the original image + * and range from 0 to 1. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1NormalizedVertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Contains metadata for the BatchAnnotateImages operation. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata : GTLRObject + +/** The time when the batch request was received. */ +@property(nonatomic, strong, nullable) GTLRDateTime *createTime; + +/** + * Current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Cancelled + * The batch processing was cancelled. (Value: "CANCELLED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Created + * Request is received. (Value: "CREATED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Done + * The batch processing is done. (Value: "DONE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_Running + * Request is actively being processed. (Value: "RUNNING") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1OperationMetadata_State_StateUnspecified + * Invalid. (Value: "STATE_UNSPECIFIED") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the operation result was last updated. */ +@property(nonatomic, strong, nullable) GTLRDateTime *updateTime; + +@end + + +/** + * The desired output location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1OutputConfig : GTLRObject + +/** + * The max number of response protos to put into each output JSON file on + * Google Cloud Storage. + * The valid range is [1, 100]. If not specified, the default value is 20. + * For example, for one pdf file with 100 pages, 100 response protos will + * be generated. If `batch_size` = 20, then 5 json files each + * containing 20 response protos will be written under the prefix + * `gcs_destination`.`uri`. + * Currently, batch_size only applies to GcsDestination, with potential future + * support for other output configurations. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *batchSize; + +/** The Google Cloud Storage location to write the output(s) to. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1GcsDestination *gcsDestination; + +@end + + +/** + * Detected page from OCR. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Page : GTLRObject + +/** List of blocks of text, images etc on this page. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Block *> *blocks; + +/** + * Confidence of the OCR results on the page. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Page height. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *height; + +/** Additional information detected on the page. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty *property; + +/** + * Page width. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *width; + +@end + + +/** + * Structural unit of text representing a number of words in certain order. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Paragraph : GTLRObject + +/** + * The bounding box for the paragraph. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the paragraph. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the paragraph. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty *property; + +/** List of words in this paragraph. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Word *> *words; + +@end + + +/** + * A 3D position in the image, used primarily for Face detection landmarks. + * A valid Position must have both x and y coordinates. + * The position coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Position : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +/** + * Z coordinate (or depth). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *z; + +@end + + +/** + * A Product contains ReferenceImages. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Product : GTLRObject + +/** + * User-provided metadata to be stored with this product. Must be at most 4096 + * characters long. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The user-provided name for this Product. Must not be empty. Must be at most + * 4096 characters long. + */ +@property(nonatomic, copy, nullable) NSString *displayName; + +/** + * The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The category for the product identified by the reference image. This should + * be either "homegoods", "apparel", or "toys". + * This field is immutable. + */ +@property(nonatomic, copy, nullable) NSString *productCategory; + +/** + * Key-value pairs that can be attached to a product. At query time, + * constraints can be specified based on the product_labels. + * Note that integer values can be provided as strings, e.g. "1199". Only + * strings with integer values can match a range-based restriction which is + * to be supported soon. + * Multiple values can be assigned to the same key. One product may have up to + * 100 product_labels. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1ProductKeyValue *> *productLabels; + +@end + + +/** + * A product label represented as a key-value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ProductKeyValue : GTLRObject + +/** + * The key of the label attached to the product. Cannot be empty and cannot + * exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *key; + +/** + * The value of the label attached to the product. Cannot be empty and + * cannot exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * Results for a product search request. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResults : GTLRObject + +/** + * Timestamp of the index which provided these results. Changes made after + * this time are not reflected in the current results. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *indexTime; + +/** + * List of results grouped by products detected in the query image. Each entry + * corresponds to one bounding polygon in the query image, and contains the + * matching products specific to that region. There may be duplicate product + * matches in the union of all the per-product results. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult *> *productGroupedResults; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about the products similar to a single product in a query + * image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult : GTLRObject + +/** The bounding polygon around the product detected in the query image. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingPoly; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about a product. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1ProductSearchResultsResult : GTLRObject + +/** + * The resource name of the image from the product that is the closest match + * to the query. + */ +@property(nonatomic, copy, nullable) NSString *image; + +/** The Product. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1Product *product; + +/** + * A confidence level on the match, ranging from 0 (no confidence) to + * 1 (full confidence). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * A `Property` consists of a user-supplied name/value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Property : GTLRObject + +/** Name of the property. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Value of numeric properties. + * + * Uses NSNumber of unsignedLongLongValue. + */ +@property(nonatomic, strong, nullable) NSNumber *uint64Value; + +/** Value of the property. */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * Set of features pertaining to the image, computed by computer vision + * methods over safe-search verticals (for example, adult, spoof, medical, + * violence). + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation : GTLRObject + +/** + * Represents the adult content likelihood for the image. Adult content may + * contain elements such as nudity, pornographic images or cartoons, or + * sexual activities. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Adult_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *adult; + +/** + * Likelihood that this is a medical image. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Medical_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *medical; + +/** + * Likelihood that the request image contains racy content. Racy content may + * include (but is not limited to) skimpy or sheer clothing, strategically + * covered nudity, lewd or provocative poses, or close-ups of sensitive + * body areas. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Racy_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *racy; + +/** + * Spoof likelihood. The likelihood that an modification + * was made to the image's canonical version to make it appear + * funny or offensive. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Spoof_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *spoof; + +/** + * Likelihood that this image contains violent content. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1SafeSearchAnnotation_Violence_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *violence; + +@end + + +/** + * A single symbol representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Symbol : GTLRObject + +/** + * The bounding box for the symbol. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertice order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the symbol. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the symbol. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty *property; + +/** The actual UTF-8 representation of the symbol. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * TextAnnotation contains a structured representation of OCR extracted text. + * The hierarchy of an OCR extracted text structure is like this: + * TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol + * Each structural component, starting from Page, may further have their own + * properties. Properties describe detected languages, breaks etc.. Please + * refer + * to the TextAnnotation.TextProperty message definition below for more + * detail. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotation : GTLRObject + +/** List of pages detected by OCR. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Page *> *pages; + +/** UTF-8 text detected on the pages. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * Detected start or end of a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak : GTLRObject + +/** + * True if break prepends the element. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *isPrefix; + +/** + * Detected break type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_EolSureSpace + * Line-wrapping break. (Value: "EOL_SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Hyphen + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. (Value: "HYPHEN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_LineBreak + * Line break that ends a paragraph. (Value: "LINE_BREAK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Space + * Regular space. (Value: "SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_SureSpace + * Sure space (very wide). (Value: "SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak_Type_Unknown + * Unknown break label type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * Detected language for a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage : GTLRObject + +/** + * Confidence of detected language. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Additional information detected on the structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty : GTLRObject + +/** Detected start or end of a text segment. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak *detectedBreak; + +/** A list of detected languages together with confidence. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage *> *detectedLanguages; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the vertex coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Vertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Relevant information for the image from the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1WebDetection : GTLRObject + +/** + * The service's best guess as to the topic of the request image. + * Inferred from similar images on the open web. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebLabel *> *bestGuessLabels; + +/** + * Fully matching images from the Internet. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Web pages containing the matching images from the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebPage *> *pagesWithMatchingImages; + +/** + * Partial matching images from the Internet. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage *> *partialMatchingImages; + +/** The visually similar image results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage *> *visuallySimilarImages; + +/** Deduced entities from similar images on the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebEntity *> *webEntities; + +@end + + +/** + * Entity deduced from similar images on the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebEntity : GTLRObject + +/** + * Canonical description of the entity, in English. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** Opaque entity ID. */ +@property(nonatomic, copy, nullable) NSString *entityId; + +/** + * Overall relevancy score for the entity. + * Not normalized and not comparable across different image queries. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Metadata for online images. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage : GTLRObject + +/** + * (Deprecated) Overall relevancy score for the image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result image URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * Label to provide extra metadata for the web detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebLabel : GTLRObject + +/** Label for extra metadata. */ +@property(nonatomic, copy, nullable) NSString *label; + +/** + * The BCP-47 language code for `label`, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Metadata for web pages. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebPage : GTLRObject + +/** + * Fully matching images on the page. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Title for the web page, may contain HTML markups. */ +@property(nonatomic, copy, nullable) NSString *pageTitle; + +/** + * Partial matching images on the page. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its + * crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1WebDetectionWebImage *> *partialMatchingImages; + +/** + * (Deprecated) Overall relevancy score for the web page. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result web page URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * A word representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p1beta1Word : GTLRObject + +/** + * The bounding box for the word. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the word. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the word. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p1beta1TextAnnotationTextProperty *property; + +/** + * List of symbols in the word. + * The order of the symbols follows the natural reading order. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p1beta1Symbol *> *symbols; + +@end + + +/** + * Response to a single file annotation request. A file may contain one or more + * images, which individually have their own responses. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1AnnotateFileResponse : GTLRObject + +/** Information about the file for which this response is generated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1InputConfig *inputConfig; + +/** Individual responses to images found within the file. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1AnnotateImageResponse *> *responses; + +@end + + +/** + * Response to an image annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1AnnotateImageResponse : GTLRObject + +/** + * If present, contextual information is needed to understand where this image + * comes from. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1ImageAnnotationContext *context; + +/** If present, crop hints have completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1CropHintsAnnotation *cropHintsAnnotation; + +/** + * If set, represents the error message for the operation. + * Note that filled-in image annotations are guaranteed to be + * correct, even when `error` is set. + */ +@property(nonatomic, strong, nullable) GTLRVision_Status *error; + +/** If present, face detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation *> *faceAnnotations; + +/** + * If present, text (OCR) detection or document (OCR) text detection has + * completed successfully. + * This annotation provides the structural hierarchy for the OCR detected + * text. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotation *fullTextAnnotation; + +/** If present, image properties were extracted successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1ImageProperties *imagePropertiesAnnotation; + +/** If present, label detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation *> *labelAnnotations; + +/** If present, landmark detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation *> *landmarkAnnotations; + +/** + * If present, localized object detection has completed successfully. + * This will be sorted descending by confidence score. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation *> *localizedObjectAnnotations; + +/** If present, logo detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation *> *logoAnnotations; + +/** If present, product search has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResults *productSearchResults; + +/** If present, safe-search annotation has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation *safeSearchAnnotation; + +/** If present, text (OCR) detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation *> *textAnnotations; + +/** If present, web detection has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1WebDetection *webDetection; + +@end + + +/** + * The response for a single offline file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse : GTLRObject + +/** The output location and metadata from AsyncAnnotateFileRequest. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1OutputConfig *outputConfig; + +@end + + +/** + * Response to an async batch file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse : GTLRObject + +/** + * The list of file annotation responses, one for each request in + * AsyncBatchAnnotateFilesRequest. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse *> *responses; + +@end + + +/** + * Logical element on the page. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Block : GTLRObject + +/** + * Detected block type (text, image etc) for this block. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Barcode + * Barcode block. (Value: "BARCODE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Picture + * Image block. (Value: "PICTURE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Ruler + * Horizontal/vertical line box. (Value: "RULER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Table Table + * block. (Value: "TABLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Text Regular + * text block. (Value: "TEXT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1Block_BlockType_Unknown + * Unknown block type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *blockType; + +/** + * The bounding box for the block. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results on the block. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** List of paragraphs in this block (if this blocks is of type text). */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Paragraph *> *paragraphs; + +/** Additional information detected for the block. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty *property; + +@end + + +/** + * A bounding polygon for the detected image annotation. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly : GTLRObject + +/** The bounding polygon normalized vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1NormalizedVertex *> *normalizedVertices; + +/** The bounding polygon vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Vertex *> *vertices; + +@end + + +/** + * Color information consists of RGB channels, score, and the fraction of + * the image that the color occupies in the image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ColorInfo : GTLRObject + +/** RGB components of the color. */ +@property(nonatomic, strong, nullable) GTLRVision_Color *color; + +/** + * The fraction of pixels the color occupies in the image. + * Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pixelFraction; + +/** + * Image-specific score for this color. Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Single crop hint that is used to generate a new crop when serving an image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1CropHint : GTLRObject + +/** + * The bounding polygon for the crop region. The coordinates of the bounding + * box are in the original image's scale. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingPoly; + +/** + * Confidence of this being a salient region. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Fraction of importance of this salient region with respect to the original + * image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *importanceFraction; + +@end + + +/** + * Set of crop hints that are used to generate new crops when serving images. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1CropHintsAnnotation : GTLRObject + +/** Crop hint results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1CropHint *> *cropHints; + +@end + + +/** + * Set of dominant colors and their corresponding scores. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1DominantColorsAnnotation : GTLRObject + +/** RGB color values with their score and pixel fraction. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1ColorInfo *> *colors; + +@end + + +/** + * Set of detected entity features. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1EntityAnnotation : GTLRObject + +/** + * Image region to which this entity belongs. Not produced + * for `LABEL_DETECTION` features. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingPoly; + +/** + * **Deprecated. Use `score` instead.** + * The accuracy of the entity detection in an image. + * For example, for an image in which the "Eiffel Tower" entity is detected, + * this field represents the confidence that there is a tower in the query + * image. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Entity textual description, expressed in its `locale` language. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The language code for the locale in which the entity textual + * `description` is expressed. + */ +@property(nonatomic, copy, nullable) NSString *locale; + +/** + * The location information for the detected entity. Multiple + * `LocationInfo` elements can be present because one location may + * indicate the location of the scene in the image, and another location + * may indicate the location of the place where the image was taken. + * Location information is usually present for landmarks. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1LocationInfo *> *locations; + +/** + * Opaque entity ID. Some IDs may be available in + * [Google Knowledge Graph Search + * API](https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** + * Some entities may have optional user-supplied `Property` (name/value) + * fields, such a score or string that qualifies the entity. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Property *> *properties; + +/** + * Overall score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** + * The relevancy of the ICA (Image Content Annotation) label to the + * image. For example, the relevancy of "tower" is likely higher to an image + * containing the detected "Eiffel Tower" than to an image containing a + * detected distant towering building, even though the confidence that + * there is a tower in each image may be the same. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *topicality; + +@end + + +/** + * A face annotation object contains the results of face detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation : GTLRObject + +/** + * Anger likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_AngerLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *angerLikelihood; + +/** + * Blurred likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *blurredLikelihood; + +/** + * The bounding polygon around the face. The coordinates of the bounding box + * are in the original image's scale. + * The bounding box is computed to "frame" the face in accordance with human + * expectations. It is based on the landmarker results. + * Note that one or more x and/or y coordinates may not be generated in the + * `BoundingPoly` (the polygon will be unbounded) if only a partial face + * appears in the image to be annotated. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingPoly; + +/** + * Detection confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *detectionConfidence; + +/** + * The `fd_bounding_poly` bounding polygon is tighter than the + * `boundingPoly`, and encloses only the skin part of the face. Typically, it + * is used to eliminate the face from any image analysis that detects the + * "amount of skin" visible in an image. It is not based on the + * landmarker results, only on the initial face detection, hence + * the <code>fd</code> (face detection) prefix. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *fdBoundingPoly; + +/** + * Headwear likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *headwearLikelihood; + +/** + * Joy likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_JoyLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *joyLikelihood; + +/** + * Face landmarking confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *landmarkingConfidence; + +/** Detected face landmarks. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark *> *landmarks; + +/** + * Yaw angle, which indicates the leftward/rightward angle that the face is + * pointing relative to the vertical plane perpendicular to the image. Range + * [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *panAngle; + +/** + * Roll angle, which indicates the amount of clockwise/anti-clockwise rotation + * of the face relative to the image vertical about the axis perpendicular to + * the face. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *rollAngle; + +/** + * Sorrow likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *sorrowLikelihood; + +/** + * Surprise likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *surpriseLikelihood; + +/** + * Pitch angle, which indicates the upwards/downwards angle that the face is + * pointing relative to the image's horizontal plane. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *tiltAngle; + +/** + * Under-exposed likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *underExposedLikelihood; + +@end + + +/** + * A face-specific landmark (for example, a face feature). + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark : GTLRObject + +/** Face landmark position. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1Position *position; + +/** + * Face landmark type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinGnathion + * Chin gnathion. (Value: "CHIN_GNATHION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinLeftGonion + * Chin left gonion. (Value: "CHIN_LEFT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ChinRightGonion + * Chin right gonion. (Value: "CHIN_RIGHT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_ForeheadGlabella + * Forehead glabella. (Value: "FOREHEAD_GLABELLA") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEarTragion + * Left ear tragion. (Value: "LEFT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEye + * Left eye. (Value: "LEFT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary + * Left eye, bottom boundary. (Value: "LEFT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint + * Left eyebrow, upper midpoint. (Value: "LEFT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner + * Left eye, left corner. (Value: "LEFT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyePupil + * Left eye pupil. (Value: "LEFT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner + * Left eye, right corner. (Value: "LEFT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary + * Left eye, top boundary. (Value: "LEFT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow + * Left of left eyebrow. (Value: "LEFT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow + * Left of right eyebrow. (Value: "LEFT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_LowerLip + * Lower lip. (Value: "LOWER_LIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes + * Midpoint between eyes. (Value: "MIDPOINT_BETWEEN_EYES") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthCenter + * Mouth center. (Value: "MOUTH_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthLeft + * Mouth left. (Value: "MOUTH_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_MouthRight + * Mouth right. (Value: "MOUTH_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomCenter + * Nose, bottom center. (Value: "NOSE_BOTTOM_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomLeft + * Nose, bottom left. (Value: "NOSE_BOTTOM_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseBottomRight + * Nose, bottom right. (Value: "NOSE_BOTTOM_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_NoseTip + * Nose tip. (Value: "NOSE_TIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEarTragion + * Right ear tragion. (Value: "RIGHT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEye + * Right eye. (Value: "RIGHT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary + * Right eye, bottom boundary. (Value: "RIGHT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint + * Right eyebrow, upper midpoint. (Value: "RIGHT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner + * Right eye, left corner. (Value: "RIGHT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyePupil + * Right eye pupil. (Value: "RIGHT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeRightCorner + * Right eye, right corner. (Value: "RIGHT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary + * Right eye, top boundary. (Value: "RIGHT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow + * Right of left eyebrow. (Value: "RIGHT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow + * Right of right eyebrow. (Value: "RIGHT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_UnknownLandmark + * Unknown face landmark detected. Should not be filled. (Value: + * "UNKNOWN_LANDMARK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1FaceAnnotationLandmark_Type_UpperLip + * Upper lip. (Value: "UPPER_LIP") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * The Google Cloud Storage location where the output will be written to. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1GcsDestination : GTLRObject + +/** + * Google Cloud Storage URI where the results will be stored. Results will + * be in JSON format and preceded by its corresponding input URI. This field + * can either represent a single file, or a prefix for multiple outputs. + * Prefixes must end in a `/`. + * Examples: + * * File: gs://bucket-name/filename.json + * * Prefix: gs://bucket-name/prefix/here/ + * * File: gs://bucket-name/prefix/here + * If multiple outputs, each response is still AnnotateFileResponse, each of + * which contains some subset of the full list of AnnotateImageResponse. + * Multiple outputs can happen if, for example, the output JSON is too large + * and overflows into multiple sharded files. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * The Google Cloud Storage location where the input will be read from. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1GcsSource : GTLRObject + +/** + * Google Cloud Storage URI for the input file. This must only be a + * Google Cloud Storage object. Wildcards are not currently supported. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * If an image was produced from a file (e.g. a PDF), this message gives + * information about the source of that image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ImageAnnotationContext : GTLRObject + +/** + * If the file was a PDF or TIFF, this field gives the page number within + * the file used to produce the image. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pageNumber; + +/** The URI of the file used to produce the image. */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Stores image properties, such as dominant colors. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ImageProperties : GTLRObject + +/** If present, dominant colors completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1DominantColorsAnnotation *dominantColors; + +@end + + +/** + * The desired input location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1InputConfig : GTLRObject + +/** The Google Cloud Storage location to read the input from. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1GcsSource *gcsSource; + +/** + * The type of the file. Currently only "application/pdf" and "image/tiff" + * are supported. Wildcards are not supported. + */ +@property(nonatomic, copy, nullable) NSString *mimeType; + +@end + + +/** + * Set of detected objects with bounding boxes. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation : GTLRObject + +/** Image region to which this object belongs. This must be populated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingPoly; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +/** Object ID that should align with EntityAnnotation mid. */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** Object name, expressed in its `language_code` language. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Detected entity location information. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1LocationInfo : GTLRObject + +/** lat/long location coordinates. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *latLng; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the normalized vertex coordinates are relative to the original image + * and range from 0 to 1. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1NormalizedVertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Contains metadata for the BatchAnnotateImages operation. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata : GTLRObject + +/** The time when the batch request was received. */ +@property(nonatomic, strong, nullable) GTLRDateTime *createTime; + +/** + * Current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Cancelled + * The batch processing was cancelled. (Value: "CANCELLED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Created + * Request is received. (Value: "CREATED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Done + * The batch processing is done. (Value: "DONE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_Running + * Request is actively being processed. (Value: "RUNNING") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1OperationMetadata_State_StateUnspecified + * Invalid. (Value: "STATE_UNSPECIFIED") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the operation result was last updated. */ +@property(nonatomic, strong, nullable) GTLRDateTime *updateTime; + +@end + + +/** + * The desired output location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1OutputConfig : GTLRObject + +/** + * The max number of response protos to put into each output JSON file on + * Google Cloud Storage. + * The valid range is [1, 100]. If not specified, the default value is 20. + * For example, for one pdf file with 100 pages, 100 response protos will + * be generated. If `batch_size` = 20, then 5 json files each + * containing 20 response protos will be written under the prefix + * `gcs_destination`.`uri`. + * Currently, batch_size only applies to GcsDestination, with potential future + * support for other output configurations. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *batchSize; + +/** The Google Cloud Storage location to write the output(s) to. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1GcsDestination *gcsDestination; + +@end + + +/** + * Detected page from OCR. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Page : GTLRObject + +/** List of blocks of text, images etc on this page. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Block *> *blocks; + +/** + * Confidence of the OCR results on the page. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Page height. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *height; + +/** Additional information detected on the page. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty *property; + +/** + * Page width. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *width; + +@end + + +/** + * Structural unit of text representing a number of words in certain order. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Paragraph : GTLRObject + +/** + * The bounding box for the paragraph. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the paragraph. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the paragraph. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty *property; + +/** List of words in this paragraph. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Word *> *words; + +@end + + +/** + * A 3D position in the image, used primarily for Face detection landmarks. + * A valid Position must have both x and y coordinates. + * The position coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Position : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +/** + * Z coordinate (or depth). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *z; + +@end + + +/** + * A Product contains ReferenceImages. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Product : GTLRObject + +/** + * User-provided metadata to be stored with this product. Must be at most 4096 + * characters long. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The user-provided name for this Product. Must not be empty. Must be at most + * 4096 characters long. + */ +@property(nonatomic, copy, nullable) NSString *displayName; + +/** + * The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The category for the product identified by the reference image. This should + * be either "homegoods", "apparel", or "toys". + * This field is immutable. + */ +@property(nonatomic, copy, nullable) NSString *productCategory; + +/** + * Key-value pairs that can be attached to a product. At query time, + * constraints can be specified based on the product_labels. + * Note that integer values can be provided as strings, e.g. "1199". Only + * strings with integer values can match a range-based restriction which is + * to be supported soon. + * Multiple values can be assigned to the same key. One product may have up to + * 100 product_labels. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1ProductKeyValue *> *productLabels; + +@end + + +/** + * A product label represented as a key-value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ProductKeyValue : GTLRObject + +/** + * The key of the label attached to the product. Cannot be empty and cannot + * exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *key; + +/** + * The value of the label attached to the product. Cannot be empty and + * cannot exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * Results for a product search request. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResults : GTLRObject + +/** + * Timestamp of the index which provided these results. Changes made after + * this time are not reflected in the current results. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *indexTime; + +/** + * List of results grouped by products detected in the query image. Each entry + * corresponds to one bounding polygon in the query image, and contains the + * matching products specific to that region. There may be duplicate product + * matches in the union of all the per-product results. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult *> *productGroupedResults; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about the products similar to a single product in a query + * image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult : GTLRObject + +/** The bounding polygon around the product detected in the query image. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingPoly; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about a product. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1ProductSearchResultsResult : GTLRObject + +/** + * The resource name of the image from the product that is the closest match + * to the query. + */ +@property(nonatomic, copy, nullable) NSString *image; + +/** The Product. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1Product *product; + +/** + * A confidence level on the match, ranging from 0 (no confidence) to + * 1 (full confidence). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * A `Property` consists of a user-supplied name/value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Property : GTLRObject + +/** Name of the property. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Value of numeric properties. + * + * Uses NSNumber of unsignedLongLongValue. + */ +@property(nonatomic, strong, nullable) NSNumber *uint64Value; + +/** Value of the property. */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * Set of features pertaining to the image, computed by computer vision + * methods over safe-search verticals (for example, adult, spoof, medical, + * violence). + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation : GTLRObject + +/** + * Represents the adult content likelihood for the image. Adult content may + * contain elements such as nudity, pornographic images or cartoons, or + * sexual activities. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Adult_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *adult; + +/** + * Likelihood that this is a medical image. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Medical_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *medical; + +/** + * Likelihood that the request image contains racy content. Racy content may + * include (but is not limited to) skimpy or sheer clothing, strategically + * covered nudity, lewd or provocative poses, or close-ups of sensitive + * body areas. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Racy_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *racy; + +/** + * Spoof likelihood. The likelihood that an modification + * was made to the image's canonical version to make it appear + * funny or offensive. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Spoof_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *spoof; + +/** + * Likelihood that this image contains violent content. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1SafeSearchAnnotation_Violence_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *violence; + +@end + + +/** + * A single symbol representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Symbol : GTLRObject + +/** + * The bounding box for the symbol. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertice order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the symbol. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the symbol. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty *property; + +/** The actual UTF-8 representation of the symbol. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * TextAnnotation contains a structured representation of OCR extracted text. + * The hierarchy of an OCR extracted text structure is like this: + * TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol + * Each structural component, starting from Page, may further have their own + * properties. Properties describe detected languages, breaks etc.. Please + * refer + * to the TextAnnotation.TextProperty message definition below for more + * detail. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotation : GTLRObject + +/** List of pages detected by OCR. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Page *> *pages; + +/** UTF-8 text detected on the pages. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * Detected start or end of a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak : GTLRObject + +/** + * True if break prepends the element. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *isPrefix; + +/** + * Detected break type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_EolSureSpace + * Line-wrapping break. (Value: "EOL_SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Hyphen + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. (Value: "HYPHEN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_LineBreak + * Line break that ends a paragraph. (Value: "LINE_BREAK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Space + * Regular space. (Value: "SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_SureSpace + * Sure space (very wide). (Value: "SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak_Type_Unknown + * Unknown break label type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * Detected language for a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage : GTLRObject + +/** + * Confidence of detected language. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Additional information detected on the structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty : GTLRObject + +/** Detected start or end of a text segment. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak *detectedBreak; + +/** A list of detected languages together with confidence. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage *> *detectedLanguages; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the vertex coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Vertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Relevant information for the image from the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1WebDetection : GTLRObject + +/** + * The service's best guess as to the topic of the request image. + * Inferred from similar images on the open web. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebLabel *> *bestGuessLabels; + +/** + * Fully matching images from the Internet. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Web pages containing the matching images from the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebPage *> *pagesWithMatchingImages; + +/** + * Partial matching images from the Internet. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage *> *partialMatchingImages; + +/** The visually similar image results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage *> *visuallySimilarImages; + +/** Deduced entities from similar images on the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebEntity *> *webEntities; + +@end + + +/** + * Entity deduced from similar images on the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebEntity : GTLRObject + +/** + * Canonical description of the entity, in English. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** Opaque entity ID. */ +@property(nonatomic, copy, nullable) NSString *entityId; + +/** + * Overall relevancy score for the entity. + * Not normalized and not comparable across different image queries. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Metadata for online images. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage : GTLRObject + +/** + * (Deprecated) Overall relevancy score for the image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result image URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * Label to provide extra metadata for the web detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebLabel : GTLRObject + +/** Label for extra metadata. */ +@property(nonatomic, copy, nullable) NSString *label; + +/** + * The BCP-47 language code for `label`, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Metadata for web pages. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebPage : GTLRObject + +/** + * Fully matching images on the page. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Title for the web page, may contain HTML markups. */ +@property(nonatomic, copy, nullable) NSString *pageTitle; + +/** + * Partial matching images on the page. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its + * crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1WebDetectionWebImage *> *partialMatchingImages; + +/** + * (Deprecated) Overall relevancy score for the web page. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result web page URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * A word representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p2beta1Word : GTLRObject + +/** + * The bounding box for the word. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the word. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the word. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p2beta1TextAnnotationTextProperty *property; + +/** + * List of symbols in the word. + * The order of the symbols follows the natural reading order. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p2beta1Symbol *> *symbols; + +@end + + +/** + * Response to a single file annotation request. A file may contain one or more + * images, which individually have their own responses. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1AnnotateFileResponse : GTLRObject + +/** Information about the file for which this response is generated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1InputConfig *inputConfig; + +/** Individual responses to images found within the file. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1AnnotateImageResponse *> *responses; + +@end + + +/** + * Response to an image annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1AnnotateImageResponse : GTLRObject + +/** + * If present, contextual information is needed to understand where this image + * comes from. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1ImageAnnotationContext *context; + +/** If present, crop hints have completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1CropHintsAnnotation *cropHintsAnnotation; + +/** + * If set, represents the error message for the operation. + * Note that filled-in image annotations are guaranteed to be + * correct, even when `error` is set. + */ +@property(nonatomic, strong, nullable) GTLRVision_Status *error; + +/** If present, face detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation *> *faceAnnotations; + +/** + * If present, text (OCR) detection or document (OCR) text detection has + * completed successfully. + * This annotation provides the structural hierarchy for the OCR detected + * text. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotation *fullTextAnnotation; + +/** If present, image properties were extracted successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1ImageProperties *imagePropertiesAnnotation; + +/** If present, label detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation *> *labelAnnotations; + +/** If present, landmark detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation *> *landmarkAnnotations; + +/** + * If present, localized object detection has completed successfully. + * This will be sorted descending by confidence score. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation *> *localizedObjectAnnotations; + +/** If present, logo detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation *> *logoAnnotations; + +/** If present, product search has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResults *productSearchResults; + +/** If present, safe-search annotation has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation *safeSearchAnnotation; + +/** If present, text (OCR) detection has completed successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation *> *textAnnotations; + +/** If present, web detection has completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1WebDetection *webDetection; + +@end + + +/** + * The response for a single offline file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse : GTLRObject + +/** The output location and metadata from AsyncAnnotateFileRequest. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1OutputConfig *outputConfig; + +@end + + +/** + * Response to an async batch file annotation request. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse : GTLRObject + +/** + * The list of file annotation responses, one for each request in + * AsyncBatchAnnotateFilesRequest. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse *> *responses; + +@end + + +/** + * Metadata for the batch operations such as the current state. + * This is included in the `metadata` field of the `Operation` returned by the + * `GetOperation` call of the `google::longrunning::Operations` service. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata : GTLRObject + +/** + * The time when the batch request is finished and + * google.longrunning.Operation.done is set to true. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *endTime; + +/** + * The current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Cancelled + * The request is done after the longrunning.Operations.CancelOperation + * has + * been called by the user. Any records that were processed before the + * cancel command are output as specified in the request. (Value: + * "CANCELLED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Failed + * The request is done and no item has been successfully processed. + * (Value: "FAILED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Processing + * Request is actively being processed. (Value: "PROCESSING") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_StateUnspecified + * Invalid. (Value: "STATE_UNSPECIFIED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1BatchOperationMetadata_State_Successful + * The request is done and at least one item has been successfully + * processed. (Value: "SUCCESSFUL") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the batch request was submitted to the server. */ +@property(nonatomic, strong, nullable) GTLRDateTime *submitTime; + +@end + + +/** + * Logical element on the page. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Block : GTLRObject + +/** + * Detected block type (text, image etc) for this block. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Barcode + * Barcode block. (Value: "BARCODE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Picture + * Image block. (Value: "PICTURE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Ruler + * Horizontal/vertical line box. (Value: "RULER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Table Table + * block. (Value: "TABLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Text Regular + * text block. (Value: "TEXT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1Block_BlockType_Unknown + * Unknown block type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *blockType; + +/** + * The bounding box for the block. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results on the block. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** List of paragraphs in this block (if this blocks is of type text). */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Paragraph *> *paragraphs; + +/** Additional information detected for the block. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty *property; + +@end + + +/** + * A bounding polygon for the detected image annotation. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly : GTLRObject + +/** The bounding polygon normalized vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1NormalizedVertex *> *normalizedVertices; + +/** The bounding polygon vertices. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Vertex *> *vertices; + +@end + + +/** + * Color information consists of RGB channels, score, and the fraction of + * the image that the color occupies in the image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ColorInfo : GTLRObject + +/** RGB components of the color. */ +@property(nonatomic, strong, nullable) GTLRVision_Color *color; + +/** + * The fraction of pixels the color occupies in the image. + * Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pixelFraction; + +/** + * Image-specific score for this color. Value in range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Single crop hint that is used to generate a new crop when serving an image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1CropHint : GTLRObject + +/** + * The bounding polygon for the crop region. The coordinates of the bounding + * box are in the original image's scale. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingPoly; + +/** + * Confidence of this being a salient region. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Fraction of importance of this salient region with respect to the original + * image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *importanceFraction; + +@end + + +/** + * Set of crop hints that are used to generate new crops when serving images. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1CropHintsAnnotation : GTLRObject + +/** Crop hint results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1CropHint *> *cropHints; + +@end + + +/** + * Set of dominant colors and their corresponding scores. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1DominantColorsAnnotation : GTLRObject + +/** RGB color values with their score and pixel fraction. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ColorInfo *> *colors; + +@end + + +/** + * Set of detected entity features. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1EntityAnnotation : GTLRObject + +/** + * Image region to which this entity belongs. Not produced + * for `LABEL_DETECTION` features. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingPoly; + +/** + * **Deprecated. Use `score` instead.** + * The accuracy of the entity detection in an image. + * For example, for an image in which the "Eiffel Tower" entity is detected, + * this field represents the confidence that there is a tower in the query + * image. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Entity textual description, expressed in its `locale` language. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The language code for the locale in which the entity textual + * `description` is expressed. + */ +@property(nonatomic, copy, nullable) NSString *locale; + +/** + * The location information for the detected entity. Multiple + * `LocationInfo` elements can be present because one location may + * indicate the location of the scene in the image, and another location + * may indicate the location of the place where the image was taken. + * Location information is usually present for landmarks. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1LocationInfo *> *locations; + +/** + * Opaque entity ID. Some IDs may be available in + * [Google Knowledge Graph Search + * API](https://developers.google.com/knowledge-graph/). + */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** + * Some entities may have optional user-supplied `Property` (name/value) + * fields, such a score or string that qualifies the entity. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Property *> *properties; + +/** + * Overall score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** + * The relevancy of the ICA (Image Content Annotation) label to the + * image. For example, the relevancy of "tower" is likely higher to an image + * containing the detected "Eiffel Tower" than to an image containing a + * detected distant towering building, even though the confidence that + * there is a tower in each image may be the same. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *topicality; + +@end + + +/** + * A face annotation object contains the results of face detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation : GTLRObject + +/** + * Anger likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_AngerLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *angerLikelihood; + +/** + * Blurred likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_BlurredLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *blurredLikelihood; + +/** + * The bounding polygon around the face. The coordinates of the bounding box + * are in the original image's scale. + * The bounding box is computed to "frame" the face in accordance with human + * expectations. It is based on the landmarker results. + * Note that one or more x and/or y coordinates may not be generated in the + * `BoundingPoly` (the polygon will be unbounded) if only a partial face + * appears in the image to be annotated. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingPoly; + +/** + * Detection confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *detectionConfidence; + +/** + * The `fd_bounding_poly` bounding polygon is tighter than the + * `boundingPoly`, and encloses only the skin part of the face. Typically, it + * is used to eliminate the face from any image analysis that detects the + * "amount of skin" visible in an image. It is not based on the + * landmarker results, only on the initial face detection, hence + * the <code>fd</code> (face detection) prefix. + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *fdBoundingPoly; + +/** + * Headwear likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_HeadwearLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *headwearLikelihood; + +/** + * Joy likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_JoyLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *joyLikelihood; + +/** + * Face landmarking confidence. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *landmarkingConfidence; + +/** Detected face landmarks. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark *> *landmarks; + +/** + * Yaw angle, which indicates the leftward/rightward angle that the face is + * pointing relative to the vertical plane perpendicular to the image. Range + * [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *panAngle; + +/** + * Roll angle, which indicates the amount of clockwise/anti-clockwise rotation + * of the face relative to the image vertical about the axis perpendicular to + * the face. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *rollAngle; + +/** + * Sorrow likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SorrowLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *sorrowLikelihood; + +/** + * Surprise likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_SurpriseLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *surpriseLikelihood; + +/** + * Pitch angle, which indicates the upwards/downwards angle that the face is + * pointing relative to the image's horizontal plane. Range [-180,180]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *tiltAngle; + +/** + * Under-exposed likelihood. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotation_UnderExposedLikelihood_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *underExposedLikelihood; + +@end + + +/** + * A face-specific landmark (for example, a face feature). + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark : GTLRObject + +/** Face landmark position. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1Position *position; + +/** + * Face landmark type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinGnathion + * Chin gnathion. (Value: "CHIN_GNATHION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinLeftGonion + * Chin left gonion. (Value: "CHIN_LEFT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ChinRightGonion + * Chin right gonion. (Value: "CHIN_RIGHT_GONION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_ForeheadGlabella + * Forehead glabella. (Value: "FOREHEAD_GLABELLA") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEarTragion + * Left ear tragion. (Value: "LEFT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEye + * Left eye. (Value: "LEFT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeBottomBoundary + * Left eye, bottom boundary. (Value: "LEFT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyebrowUpperMidpoint + * Left eyebrow, upper midpoint. (Value: "LEFT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeLeftCorner + * Left eye, left corner. (Value: "LEFT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyePupil + * Left eye pupil. (Value: "LEFT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeRightCorner + * Left eye, right corner. (Value: "LEFT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftEyeTopBoundary + * Left eye, top boundary. (Value: "LEFT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftOfLeftEyebrow + * Left of left eyebrow. (Value: "LEFT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LeftOfRightEyebrow + * Left of right eyebrow. (Value: "LEFT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_LowerLip + * Lower lip. (Value: "LOWER_LIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MidpointBetweenEyes + * Midpoint between eyes. (Value: "MIDPOINT_BETWEEN_EYES") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthCenter + * Mouth center. (Value: "MOUTH_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthLeft + * Mouth left. (Value: "MOUTH_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_MouthRight + * Mouth right. (Value: "MOUTH_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomCenter + * Nose, bottom center. (Value: "NOSE_BOTTOM_CENTER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomLeft + * Nose, bottom left. (Value: "NOSE_BOTTOM_LEFT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseBottomRight + * Nose, bottom right. (Value: "NOSE_BOTTOM_RIGHT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_NoseTip + * Nose tip. (Value: "NOSE_TIP") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEarTragion + * Right ear tragion. (Value: "RIGHT_EAR_TRAGION") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEye + * Right eye. (Value: "RIGHT_EYE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeBottomBoundary + * Right eye, bottom boundary. (Value: "RIGHT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyebrowUpperMidpoint + * Right eyebrow, upper midpoint. (Value: "RIGHT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeLeftCorner + * Right eye, left corner. (Value: "RIGHT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyePupil + * Right eye pupil. (Value: "RIGHT_EYE_PUPIL") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeRightCorner + * Right eye, right corner. (Value: "RIGHT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightEyeTopBoundary + * Right eye, top boundary. (Value: "RIGHT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightOfLeftEyebrow + * Right of left eyebrow. (Value: "RIGHT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_RightOfRightEyebrow + * Right of right eyebrow. (Value: "RIGHT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_UnknownLandmark + * Unknown face landmark detected. Should not be filled. (Value: + * "UNKNOWN_LANDMARK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1FaceAnnotationLandmark_Type_UpperLip + * Upper lip. (Value: "UPPER_LIP") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * The Google Cloud Storage location where the output will be written to. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1GcsDestination : GTLRObject + +/** + * Google Cloud Storage URI where the results will be stored. Results will + * be in JSON format and preceded by its corresponding input URI. This field + * can either represent a single file, or a prefix for multiple outputs. + * Prefixes must end in a `/`. + * Examples: + * * File: gs://bucket-name/filename.json + * * Prefix: gs://bucket-name/prefix/here/ + * * File: gs://bucket-name/prefix/here + * If multiple outputs, each response is still AnnotateFileResponse, each of + * which contains some subset of the full list of AnnotateImageResponse. + * Multiple outputs can happen if, for example, the output JSON is too large + * and overflows into multiple sharded files. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * The Google Cloud Storage location where the input will be read from. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1GcsSource : GTLRObject + +/** + * Google Cloud Storage URI for the input file. This must only be a + * Google Cloud Storage object. Wildcards are not currently supported. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * If an image was produced from a file (e.g. a PDF), this message gives + * information about the source of that image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ImageAnnotationContext : GTLRObject + +/** + * If the file was a PDF or TIFF, this field gives the page number within + * the file used to produce the image. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pageNumber; + +/** The URI of the file used to produce the image. */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Stores image properties, such as dominant colors. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ImageProperties : GTLRObject + +/** If present, dominant colors completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1DominantColorsAnnotation *dominantColors; + +@end + + +/** + * Response message for the `ImportProductSets` method. + * This message is returned by the + * google.longrunning.Operations.GetOperation method in the returned + * google.longrunning.Operation.response field. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ImportProductSetsResponse : GTLRObject + +/** The list of reference_images that are imported successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ReferenceImage *> *referenceImages; + +/** + * The rpc status for each ImportProductSet request, including both successes + * and errors. + * The number of statuses here matches the number of lines in the csv file, + * and statuses[i] stores the success or failure status of processing the i-th + * line of the csv, starting from line 0. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Status *> *statuses; + +@end + + +/** + * The desired input location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1InputConfig : GTLRObject + +/** The Google Cloud Storage location to read the input from. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1GcsSource *gcsSource; + +/** + * The type of the file. Currently only "application/pdf" and "image/tiff" + * are supported. Wildcards are not supported. + */ +@property(nonatomic, copy, nullable) NSString *mimeType; + +@end + + +/** + * Set of detected objects with bounding boxes. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation : GTLRObject + +/** Image region to which this object belongs. This must be populated. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingPoly; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +/** Object ID that should align with EntityAnnotation mid. */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** Object name, expressed in its `language_code` language. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Detected entity location information. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1LocationInfo : GTLRObject + +/** lat/long location coordinates. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *latLng; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the normalized vertex coordinates are relative to the original image + * and range from 0 to 1. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1NormalizedVertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Contains metadata for the BatchAnnotateImages operation. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata : GTLRObject + +/** The time when the batch request was received. */ +@property(nonatomic, strong, nullable) GTLRDateTime *createTime; + +/** + * Current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Cancelled + * The batch processing was cancelled. (Value: "CANCELLED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Created + * Request is received. (Value: "CREATED") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Done + * The batch processing is done. (Value: "DONE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_Running + * Request is actively being processed. (Value: "RUNNING") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1OperationMetadata_State_StateUnspecified + * Invalid. (Value: "STATE_UNSPECIFIED") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the operation result was last updated. */ +@property(nonatomic, strong, nullable) GTLRDateTime *updateTime; + +@end + + +/** + * The desired output location and metadata. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1OutputConfig : GTLRObject + +/** + * The max number of response protos to put into each output JSON file on + * Google Cloud Storage. + * The valid range is [1, 100]. If not specified, the default value is 20. + * For example, for one pdf file with 100 pages, 100 response protos will + * be generated. If `batch_size` = 20, then 5 json files each + * containing 20 response protos will be written under the prefix + * `gcs_destination`.`uri`. + * Currently, batch_size only applies to GcsDestination, with potential future + * support for other output configurations. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *batchSize; + +/** The Google Cloud Storage location to write the output(s) to. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1GcsDestination *gcsDestination; + +@end + + +/** + * Detected page from OCR. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Page : GTLRObject + +/** List of blocks of text, images etc on this page. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Block *> *blocks; + +/** + * Confidence of the OCR results on the page. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Page height. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *height; + +/** Additional information detected on the page. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty *property; + +/** + * Page width. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *width; + +@end + + +/** + * Structural unit of text representing a number of words in certain order. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Paragraph : GTLRObject + +/** + * The bounding box for the paragraph. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the paragraph. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the paragraph. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty *property; + +/** List of words in this paragraph. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Word *> *words; + +@end + + +/** + * A 3D position in the image, used primarily for Face detection landmarks. + * A valid Position must have both x and y coordinates. + * The position coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Position : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +/** + * Z coordinate (or depth). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *z; + +@end + + +/** + * A Product contains ReferenceImages. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Product : GTLRObject + +/** + * User-provided metadata to be stored with this product. Must be at most 4096 + * characters long. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The user-provided name for this Product. Must not be empty. Must be at most + * 4096 characters long. + */ +@property(nonatomic, copy, nullable) NSString *displayName; + +/** + * The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The category for the product identified by the reference image. This should + * be either "homegoods", "apparel", or "toys". + * This field is immutable. + */ +@property(nonatomic, copy, nullable) NSString *productCategory; + +/** + * Key-value pairs that can be attached to a product. At query time, + * constraints can be specified based on the product_labels. + * Note that integer values can be provided as strings, e.g. "1199". Only + * strings with integer values can match a range-based restriction which is + * to be supported soon. + * Multiple values can be assigned to the same key. One product may have up to + * 100 product_labels. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ProductKeyValue *> *productLabels; + +@end + + +/** + * A product label represented as a key-value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ProductKeyValue : GTLRObject + +/** + * The key of the label attached to the product. Cannot be empty and cannot + * exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *key; + +/** + * The value of the label attached to the product. Cannot be empty and + * cannot exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * Results for a product search request. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResults : GTLRObject + +/** + * Timestamp of the index which provided these results. Changes made after + * this time are not reflected in the current results. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *indexTime; + +/** + * List of results grouped by products detected in the query image. Each entry + * corresponds to one bounding polygon in the query image, and contains the + * matching products specific to that region. There may be duplicate product + * matches in the union of all the per-product results. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult *> *productGroupedResults; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about the products similar to a single product in a query + * image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult : GTLRObject + +/** The bounding polygon around the product detected in the query image. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingPoly; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsResult *> *results; + +@end + + +/** + * Information about a product. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ProductSearchResultsResult : GTLRObject + +/** + * The resource name of the image from the product that is the closest match + * to the query. + */ +@property(nonatomic, copy, nullable) NSString *image; + +/** The Product. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1Product *product; + +/** + * A confidence level on the match, ranging from 0 (no confidence) to + * 1 (full confidence). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * A `Property` consists of a user-supplied name/value pair. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Property : GTLRObject + +/** Name of the property. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Value of numeric properties. + * + * Uses NSNumber of unsignedLongLongValue. + */ +@property(nonatomic, strong, nullable) NSNumber *uint64Value; + +/** Value of the property. */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * A `ReferenceImage` represents a product image and its associated metadata, + * such as bounding boxes. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1ReferenceImage : GTLRObject + +/** + * Bounding polygons around the areas of interest in the reference image. + * Optional. If this field is empty, the system will try to detect regions of + * interest. At most 10 bounding polygons will be used. + * The provided shape is converted into a non-rotated rectangle. Once + * converted, the small edge of the rectangle must be greater than or equal + * to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 + * is not). + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *> *boundingPolys; + +/** + * The resource name of the reference image. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. + * This field is ignored when creating a reference image. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The Google Cloud Storage URI of the reference image. + * The URI must start with `gs://`. + * Required. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Set of features pertaining to the image, computed by computer vision + * methods over safe-search verticals (for example, adult, spoof, medical, + * violence). + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation : GTLRObject + +/** + * Represents the adult content likelihood for the image. Adult content may + * contain elements such as nudity, pornographic images or cartoons, or + * sexual activities. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Adult_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *adult; + +/** + * Likelihood that this is a medical image. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Medical_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *medical; + +/** + * Likelihood that the request image contains racy content. Racy content may + * include (but is not limited to) skimpy or sheer clothing, strategically + * covered nudity, lewd or provocative poses, or close-ups of sensitive + * body areas. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Racy_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *racy; + +/** + * Spoof likelihood. The likelihood that an modification + * was made to the image's canonical version to make it appear + * funny or offensive. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Spoof_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *spoof; + +/** + * Likelihood that this image contains violent content. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Likely + * It is likely that the image belongs to the specified vertical. (Value: + * "LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Possible + * It is possible that the image belongs to the specified vertical. + * (Value: "POSSIBLE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Unknown + * Unknown likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_Unlikely + * It is unlikely that the image belongs to the specified vertical. + * (Value: "UNLIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_VeryLikely + * It is very likely that the image belongs to the specified vertical. + * (Value: "VERY_LIKELY") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1SafeSearchAnnotation_Violence_VeryUnlikely + * It is very unlikely that the image belongs to the specified vertical. + * (Value: "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *violence; + +@end + + +/** + * A single symbol representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Symbol : GTLRObject + +/** + * The bounding box for the symbol. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertice order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the symbol. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the symbol. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty *property; + +/** The actual UTF-8 representation of the symbol. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * TextAnnotation contains a structured representation of OCR extracted text. + * The hierarchy of an OCR extracted text structure is like this: + * TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol + * Each structural component, starting from Page, may further have their own + * properties. Properties describe detected languages, breaks etc.. Please + * refer + * to the TextAnnotation.TextProperty message definition below for more + * detail. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotation : GTLRObject + +/** List of pages detected by OCR. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Page *> *pages; + +/** UTF-8 text detected on the pages. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * Detected start or end of a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak : GTLRObject + +/** + * True if break prepends the element. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *isPrefix; + +/** + * Detected break type. + * + * Likely values: + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_EolSureSpace + * Line-wrapping break. (Value: "EOL_SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Hyphen + * End-line hyphen that is not present in text; does not co-occur with + * `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`. (Value: "HYPHEN") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_LineBreak + * Line break that ends a paragraph. (Value: "LINE_BREAK") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Space + * Regular space. (Value: "SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_SureSpace + * Sure space (very wide). (Value: "SURE_SPACE") + * @arg @c kGTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak_Type_Unknown + * Unknown break label type. (Value: "UNKNOWN") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * Detected language for a structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage : GTLRObject + +/** + * Confidence of detected language. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Additional information detected on the structural component. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty : GTLRObject + +/** Detected start or end of a text segment. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak *detectedBreak; + +/** A list of detected languages together with confidence. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage *> *detectedLanguages; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the vertex coordinates are in the same scale as the original image. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Vertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Relevant information for the image from the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1WebDetection : GTLRObject + +/** + * The service's best guess as to the topic of the request image. + * Inferred from similar images on the open web. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebLabel *> *bestGuessLabels; + +/** + * Fully matching images from the Internet. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Web pages containing the matching images from the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebPage *> *pagesWithMatchingImages; + +/** + * Partial matching images from the Internet. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage *> *partialMatchingImages; + +/** The visually similar image results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage *> *visuallySimilarImages; + +/** Deduced entities from similar images on the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebEntity *> *webEntities; + +@end + + +/** + * Entity deduced from similar images on the Internet. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebEntity : GTLRObject + +/** + * Canonical description of the entity, in English. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** Opaque entity ID. */ +@property(nonatomic, copy, nullable) NSString *entityId; + +/** + * Overall relevancy score for the entity. + * Not normalized and not comparable across different image queries. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Metadata for online images. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage : GTLRObject + +/** + * (Deprecated) Overall relevancy score for the image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result image URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * Label to provide extra metadata for the web detection. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebLabel : GTLRObject + +/** Label for extra metadata. */ +@property(nonatomic, copy, nullable) NSString *label; + +/** + * The BCP-47 language code for `label`, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Metadata for web pages. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebPage : GTLRObject + +/** + * Fully matching images on the page. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage *> *fullMatchingImages; + +/** Title for the web page, may contain HTML markups. */ +@property(nonatomic, copy, nullable) NSString *pageTitle; + +/** + * Partial matching images on the page. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its + * crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1WebDetectionWebImage *> *partialMatchingImages; + +/** + * (Deprecated) Overall relevancy score for the web page. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result web page URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * A word representation. + */ +@interface GTLRVision_GoogleCloudVisionV1p3beta1Word : GTLRObject + +/** + * The bounding box for the word. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the word. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the word. */ +@property(nonatomic, strong, nullable) GTLRVision_GoogleCloudVisionV1p3beta1TextAnnotationTextProperty *property; + +/** + * List of symbols in the word. + * The order of the symbols follows the natural reading order. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GoogleCloudVisionV1p3beta1Symbol *> *symbols; + +@end + + +/** + * Information about the products similar to a single product in a query + * image. + */ +@interface GTLRVision_GroupedResult : GTLRObject + +/** The bounding polygon around the product detected in the query image. */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Result *> *results; + +@end + + +/** + * Client image to perform Google Cloud Vision API tasks over. + */ +@interface GTLRVision_Image : GTLRObject + +/** + * Image content, represented as a stream of bytes. + * Note: As with all `bytes` fields, protobuffers use a pure binary + * representation, whereas JSON representations use base64. + * + * Contains encoded binary data; GTLRBase64 can encode/decode (probably + * web-safe format). + */ +@property(nonatomic, copy, nullable) NSString *content; + +/** + * Google Cloud Storage image location, or publicly-accessible image + * URL. If both `content` and `source` are provided for an image, `content` + * takes precedence and is used to perform the image annotation request. + */ +@property(nonatomic, strong, nullable) GTLRVision_ImageSource *source; + +@end + + +/** + * If an image was produced from a file (e.g. a PDF), this message gives + * information about the source of that image. + */ +@interface GTLRVision_ImageAnnotationContext : GTLRObject + +/** + * If the file was a PDF or TIFF, this field gives the page number within + * the file used to produce the image. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pageNumber; + +/** The URI of the file used to produce the image. */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Image context and/or feature-specific parameters. + */ +@interface GTLRVision_ImageContext : GTLRObject + +/** Parameters for crop hints annotation request. */ +@property(nonatomic, strong, nullable) GTLRVision_CropHintsParams *cropHintsParams; + +/** + * List of languages to use for TEXT_DETECTION. In most cases, an empty value + * yields the best results since it enables automatic language detection. For + * languages based on the Latin alphabet, setting `language_hints` is not + * needed. In rare cases, when the language of the text in the image is known, + * setting a hint will help get better results (although it will be a + * significant hindrance if the hint is wrong). Text detection returns an + * error if one or more of the specified languages is not one of the + * [supported languages](/vision/docs/languages). + */ +@property(nonatomic, strong, nullable) NSArray<NSString *> *languageHints; + +/** Not used. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLongRect *latLongRect; + +/** Parameters for product search. */ +@property(nonatomic, strong, nullable) GTLRVision_ProductSearchParams *productSearchParams; + +/** Parameters for web detection. */ +@property(nonatomic, strong, nullable) GTLRVision_WebDetectionParams *webDetectionParams; + +@end + + +/** + * Stores image properties, such as dominant colors. + */ +@interface GTLRVision_ImageProperties : GTLRObject + +/** If present, dominant colors completed successfully. */ +@property(nonatomic, strong, nullable) GTLRVision_DominantColorsAnnotation *dominantColors; + +@end + + +/** + * External image source (Google Cloud Storage or web URL image location). + */ +@interface GTLRVision_ImageSource : GTLRObject + +/** + * **Use `image_uri` instead.** + * The Google Cloud Storage URI of the form + * `gs://bucket_name/object_name`. Object versioning is not supported. See + * [Google Cloud Storage Request + * URIs](https://cloud.google.com/storage/docs/reference-uris) for more info. + */ +@property(nonatomic, copy, nullable) NSString *gcsImageUri; + +/** + * The URI of the source image. Can be either: + * 1. A Google Cloud Storage URI of the form + * `gs://bucket_name/object_name`. Object versioning is not supported. See + * [Google Cloud Storage Request + * URIs](https://cloud.google.com/storage/docs/reference-uris) for more + * info. + * 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images from + * HTTP/HTTPS URLs, Google cannot guarantee that the request will be + * completed. Your request may fail if the specified host denies the + * request (e.g. due to request throttling or DOS prevention), or if Google + * throttles requests to the site for abuse prevention. You should not + * depend on externally-hosted images for production applications. + * When both `gcs_image_uri` and `image_uri` are specified, `image_uri` takes + * precedence. + */ +@property(nonatomic, copy, nullable) NSString *imageUri; + +@end + + +/** + * The Google Cloud Storage location for a csv file which preserves a list of + * ImportProductSetRequests in each line. + */ +@interface GTLRVision_ImportProductSetsGcsSource : GTLRObject + +/** + * The Google Cloud Storage URI of the input csv file. + * The URI must start with `gs://`. + * The format of the input csv file should be one image per line. + * In each line, there are 8 columns. + * 1. image-uri + * 2. image-id + * 3. product-set-id + * 4. product-id + * 5. product-category + * 6. product-display-name + * 7. labels + * 8. bounding-poly + * The `image-uri`, `product-set-id`, `product-id`, and `product-category` + * columns are required. All other columns are optional. + * If the `ProductSet` or `Product` specified by the `product-set-id` and + * `product-id` values does not exist, then the system will create a new + * `ProductSet` or `Product` for the image. In this case, the + * `product-display-name` column refers to + * display_name, the + * `product-category` column refers to + * product_category, and the + * `labels` column refers to product_labels. + * The `image-id` column is optional but must be unique if provided. If it is + * empty, the system will automatically assign a unique id to the image. + * The `product-display-name` column is optional. If it is empty, the system + * sets the display_name field for the product to a + * space (" "). You can update the `display_name` later by using the API. + * If a `Product` with the specified `product-id` already exists, then the + * system ignores the `product-display-name`, `product-category`, and `labels` + * columns. + * The `labels` column (optional) is a line containing a list of + * comma-separated key-value pairs, in the following format: + * "key_1=value_1,key_2=value_2,...,key_n=value_n" + * The `bounding-poly` column (optional) identifies one region of + * interest from the image in the same manner as `CreateReferenceImage`. If + * you do not specify the `bounding-poly` column, then the system will try to + * detect regions of interest automatically. + * At most one `bounding-poly` column is allowed per line. If the image + * contains multiple regions of interest, add a line to the CSV file that + * includes the same product information, and the `bounding-poly` values for + * each region of interest. + * The `bounding-poly` column must contain an even number of comma-separated + * numbers, in the format "p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y". Use + * non-negative integers for absolute bounding polygons, and float values + * in [0, 1] for normalized bounding polygons. + * The system will resize the image if the image resolution is too + * large to process (larger than 20MP). + */ +@property(nonatomic, copy, nullable) NSString *csvFileUri; + +@end + + +/** + * The input content for the `ImportProductSets` method. + */ +@interface GTLRVision_ImportProductSetsInputConfig : GTLRObject + +/** + * The Google Cloud Storage location for a csv file which preserves a list + * of ImportProductSetRequests in each line. + */ +@property(nonatomic, strong, nullable) GTLRVision_ImportProductSetsGcsSource *gcsSource; + +@end + + +/** + * Request message for the `ImportProductSets` method. + */ +@interface GTLRVision_ImportProductSetsRequest : GTLRObject + +/** The input content for the list of requests. */ +@property(nonatomic, strong, nullable) GTLRVision_ImportProductSetsInputConfig *inputConfig; + +@end + + +/** + * Response message for the `ImportProductSets` method. + * This message is returned by the + * google.longrunning.Operations.GetOperation method in the returned + * google.longrunning.Operation.response field. + */ +@interface GTLRVision_ImportProductSetsResponse : GTLRObject + +/** The list of reference_images that are imported successfully. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_ReferenceImage *> *referenceImages; + +/** + * The rpc status for each ImportProductSet request, including both successes + * and errors. + * The number of statuses here matches the number of lines in the csv file, + * and statuses[i] stores the success or failure status of processing the i-th + * line of the csv, starting from line 0. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Status *> *statuses; + +@end + + +/** + * The desired input location and metadata. + */ +@interface GTLRVision_InputConfig : GTLRObject + +/** The Google Cloud Storage location to read the input from. */ +@property(nonatomic, strong, nullable) GTLRVision_GcsSource *gcsSource; + +/** + * The type of the file. Currently only "application/pdf" and "image/tiff" + * are supported. Wildcards are not supported. + */ +@property(nonatomic, copy, nullable) NSString *mimeType; + +@end + + +/** + * A product label represented as a key-value pair. + */ +@interface GTLRVision_KeyValue : GTLRObject + +/** + * The key of the label attached to the product. Cannot be empty and cannot + * exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *key; + +/** + * The value of the label attached to the product. Cannot be empty and + * cannot exceed 128 bytes. + */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * A face-specific landmark (for example, a face feature). + */ +@interface GTLRVision_Landmark : GTLRObject + +/** Face landmark position. */ +@property(nonatomic, strong, nullable) GTLRVision_Position *position; + +/** + * Face landmark type. + * + * Likely values: + * @arg @c kGTLRVision_Landmark_Type_ChinGnathion Chin gnathion. (Value: + * "CHIN_GNATHION") + * @arg @c kGTLRVision_Landmark_Type_ChinLeftGonion Chin left gonion. (Value: + * "CHIN_LEFT_GONION") + * @arg @c kGTLRVision_Landmark_Type_ChinRightGonion Chin right gonion. + * (Value: "CHIN_RIGHT_GONION") + * @arg @c kGTLRVision_Landmark_Type_ForeheadGlabella Forehead glabella. + * (Value: "FOREHEAD_GLABELLA") + * @arg @c kGTLRVision_Landmark_Type_LeftEarTragion Left ear tragion. (Value: + * "LEFT_EAR_TRAGION") + * @arg @c kGTLRVision_Landmark_Type_LeftEye Left eye. (Value: "LEFT_EYE") + * @arg @c kGTLRVision_Landmark_Type_LeftEyeBottomBoundary Left eye, bottom + * boundary. (Value: "LEFT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_Landmark_Type_LeftEyebrowUpperMidpoint Left eyebrow, + * upper midpoint. (Value: "LEFT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_Landmark_Type_LeftEyeLeftCorner Left eye, left corner. + * (Value: "LEFT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_Landmark_Type_LeftEyePupil Left eye pupil. (Value: + * "LEFT_EYE_PUPIL") + * @arg @c kGTLRVision_Landmark_Type_LeftEyeRightCorner Left eye, right + * corner. (Value: "LEFT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_Landmark_Type_LeftEyeTopBoundary Left eye, top + * boundary. (Value: "LEFT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_Landmark_Type_LeftOfLeftEyebrow Left of left eyebrow. + * (Value: "LEFT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_Landmark_Type_LeftOfRightEyebrow Left of right + * eyebrow. (Value: "LEFT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_Landmark_Type_LowerLip Lower lip. (Value: "LOWER_LIP") + * @arg @c kGTLRVision_Landmark_Type_MidpointBetweenEyes Midpoint between + * eyes. (Value: "MIDPOINT_BETWEEN_EYES") + * @arg @c kGTLRVision_Landmark_Type_MouthCenter Mouth center. (Value: + * "MOUTH_CENTER") + * @arg @c kGTLRVision_Landmark_Type_MouthLeft Mouth left. (Value: + * "MOUTH_LEFT") + * @arg @c kGTLRVision_Landmark_Type_MouthRight Mouth right. (Value: + * "MOUTH_RIGHT") + * @arg @c kGTLRVision_Landmark_Type_NoseBottomCenter Nose, bottom center. + * (Value: "NOSE_BOTTOM_CENTER") + * @arg @c kGTLRVision_Landmark_Type_NoseBottomLeft Nose, bottom left. + * (Value: "NOSE_BOTTOM_LEFT") + * @arg @c kGTLRVision_Landmark_Type_NoseBottomRight Nose, bottom right. + * (Value: "NOSE_BOTTOM_RIGHT") + * @arg @c kGTLRVision_Landmark_Type_NoseTip Nose tip. (Value: "NOSE_TIP") + * @arg @c kGTLRVision_Landmark_Type_RightEarTragion Right ear tragion. + * (Value: "RIGHT_EAR_TRAGION") + * @arg @c kGTLRVision_Landmark_Type_RightEye Right eye. (Value: "RIGHT_EYE") + * @arg @c kGTLRVision_Landmark_Type_RightEyeBottomBoundary Right eye, bottom + * boundary. (Value: "RIGHT_EYE_BOTTOM_BOUNDARY") + * @arg @c kGTLRVision_Landmark_Type_RightEyebrowUpperMidpoint Right eyebrow, + * upper midpoint. (Value: "RIGHT_EYEBROW_UPPER_MIDPOINT") + * @arg @c kGTLRVision_Landmark_Type_RightEyeLeftCorner Right eye, left + * corner. (Value: "RIGHT_EYE_LEFT_CORNER") + * @arg @c kGTLRVision_Landmark_Type_RightEyePupil Right eye pupil. (Value: + * "RIGHT_EYE_PUPIL") + * @arg @c kGTLRVision_Landmark_Type_RightEyeRightCorner Right eye, right + * corner. (Value: "RIGHT_EYE_RIGHT_CORNER") + * @arg @c kGTLRVision_Landmark_Type_RightEyeTopBoundary Right eye, top + * boundary. (Value: "RIGHT_EYE_TOP_BOUNDARY") + * @arg @c kGTLRVision_Landmark_Type_RightOfLeftEyebrow Right of left + * eyebrow. (Value: "RIGHT_OF_LEFT_EYEBROW") + * @arg @c kGTLRVision_Landmark_Type_RightOfRightEyebrow Right of right + * eyebrow. (Value: "RIGHT_OF_RIGHT_EYEBROW") + * @arg @c kGTLRVision_Landmark_Type_UnknownLandmark Unknown face landmark + * detected. Should not be filled. (Value: "UNKNOWN_LANDMARK") + * @arg @c kGTLRVision_Landmark_Type_UpperLip Upper lip. (Value: "UPPER_LIP") + */ +@property(nonatomic, copy, nullable) NSString *type; + +@end + + +/** + * An object representing a latitude/longitude pair. This is expressed as a + * pair + * of doubles representing degrees latitude and degrees longitude. Unless + * specified otherwise, this must conform to the + * <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84 + * standard</a>. Values must be within normalized ranges. + */ +@interface GTLRVision_LatLng : GTLRObject + +/** + * The latitude in degrees. It must be in the range [-90.0, +90.0]. + * + * Uses NSNumber of doubleValue. + */ +@property(nonatomic, strong, nullable) NSNumber *latitude; + +/** + * The longitude in degrees. It must be in the range [-180.0, +180.0]. + * + * Uses NSNumber of doubleValue. + */ +@property(nonatomic, strong, nullable) NSNumber *longitude; + +@end + + +/** + * Rectangle determined by min and max `LatLng` pairs. + */ +@interface GTLRVision_LatLongRect : GTLRObject + +/** Max lat/long pair. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *maxLatLng; + +/** Min lat/long pair. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *minLatLng; + +@end + + +/** + * The response message for Operations.ListOperations. + * + * @note This class supports NSFastEnumeration and indexed subscripting over + * its "operations" property. If returned as the result of a query, it + * should support automatic pagination (when @c shouldFetchNextPages is + * enabled). + */ +@interface GTLRVision_ListOperationsResponse : GTLRCollectionObject + +/** The standard List next-page token. */ +@property(nonatomic, copy, nullable) NSString *nextPageToken; + +/** + * A list of operations that matches the specified filter in the request. + * + * @note This property is used to support NSFastEnumeration and indexed + * subscripting on this class. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Operation *> *operations; + +@end + + +/** + * Response message for the `ListProductSets` method. + * + * @note This class supports NSFastEnumeration and indexed subscripting over + * its "productSets" property. If returned as the result of a query, it + * should support automatic pagination (when @c shouldFetchNextPages is + * enabled). + */ +@interface GTLRVision_ListProductSetsResponse : GTLRCollectionObject + +/** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + */ +@property(nonatomic, copy, nullable) NSString *nextPageToken; + +/** + * List of ProductSets. + * + * @note This property is used to support NSFastEnumeration and indexed + * subscripting on this class. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_ProductSet *> *productSets; + +@end + + +/** + * Response message for the `ListProductsInProductSet` method. + * + * @note This class supports NSFastEnumeration and indexed subscripting over + * its "products" property. If returned as the result of a query, it + * should support automatic pagination (when @c shouldFetchNextPages is + * enabled). + */ +@interface GTLRVision_ListProductsInProductSetResponse : GTLRCollectionObject + +/** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + */ +@property(nonatomic, copy, nullable) NSString *nextPageToken; + +/** + * The list of Products. + * + * @note This property is used to support NSFastEnumeration and indexed + * subscripting on this class. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Product *> *products; + +@end + + +/** + * Response message for the `ListProducts` method. + * + * @note This class supports NSFastEnumeration and indexed subscripting over + * its "products" property. If returned as the result of a query, it + * should support automatic pagination (when @c shouldFetchNextPages is + * enabled). + */ +@interface GTLRVision_ListProductsResponse : GTLRCollectionObject + +/** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + */ +@property(nonatomic, copy, nullable) NSString *nextPageToken; + +/** + * List of products. + * + * @note This property is used to support NSFastEnumeration and indexed + * subscripting on this class. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Product *> *products; + +@end + + +/** + * Response message for the `ListReferenceImages` method. + * + * @note This class supports NSFastEnumeration and indexed subscripting over + * its "referenceImages" property. If returned as the result of a query, + * it should support automatic pagination (when @c shouldFetchNextPages + * is enabled). + */ +@interface GTLRVision_ListReferenceImagesResponse : GTLRCollectionObject + +/** The next_page_token returned from a previous List request, if any. */ +@property(nonatomic, copy, nullable) NSString *nextPageToken; + +/** + * The maximum number of items to return. Default 10, maximum 100. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *pageSize; + +/** + * The list of reference images. + * + * @note This property is used to support NSFastEnumeration and indexed + * subscripting on this class. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_ReferenceImage *> *referenceImages; + +@end + + +/** + * Set of detected objects with bounding boxes. + */ +@interface GTLRVision_LocalizedObjectAnnotation : GTLRObject + +/** Image region to which this object belongs. This must be populated. */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** + * The BCP-47 language code, such as "en-US" or "sr-Latn". For more + * information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +/** Object ID that should align with EntityAnnotation mid. */ +@property(nonatomic, copy, nullable) NSString *mid; + +/** Object name, expressed in its `language_code` language. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Score of the result. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Detected entity location information. + */ +@interface GTLRVision_LocationInfo : GTLRObject + +/** lat/long location coordinates. */ +@property(nonatomic, strong, nullable) GTLRVision_LatLng *latLng; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the normalized vertex coordinates are relative to the original image + * and range from 0 to 1. + */ +@interface GTLRVision_NormalizedVertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * This resource represents a long-running operation that is the result of a + * network API call. + */ +@interface GTLRVision_Operation : GTLRObject + +/** + * If the value is `false`, it means the operation is still in progress. + * If `true`, the operation is completed, and either `error` or `response` is + * available. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *done; + +/** The error result of the operation in case of failure or cancellation. */ +@property(nonatomic, strong, nullable) GTLRVision_Status *error; + +/** + * Service-specific metadata associated with the operation. It typically + * contains progress information and common metadata such as create time. + * Some services might not provide such metadata. Any method that returns a + * long-running operation should document the metadata type, if any. + */ +@property(nonatomic, strong, nullable) GTLRVision_Operation_Metadata *metadata; + +/** + * The server-assigned name, which is only unique within the same service that + * originally returns it. If you use the default HTTP mapping, the + * `name` should have the format of `operations/some/unique/name`. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The normal response of the operation in case of success. If the original + * method returns no data on success, such as `Delete`, the response is + * `google.protobuf.Empty`. If the original method is standard + * `Get`/`Create`/`Update`, the response should be the resource. For other + * methods, the response should have the type `XxxResponse`, where `Xxx` + * is the original method name. For example, if the original method name + * is `TakeSnapshot()`, the inferred response type is + * `TakeSnapshotResponse`. + */ +@property(nonatomic, strong, nullable) GTLRVision_Operation_Response *response; + +@end + + +/** + * Service-specific metadata associated with the operation. It typically + * contains progress information and common metadata such as create time. + * Some services might not provide such metadata. Any method that returns a + * long-running operation should document the metadata type, if any. + * + * @note This class is documented as having more properties of any valid JSON + * type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to + * get the list of properties and then fetch them; or @c + * -additionalProperties to fetch them all at once. + */ +@interface GTLRVision_Operation_Metadata : GTLRObject +@end + + +/** + * The normal response of the operation in case of success. If the original + * method returns no data on success, such as `Delete`, the response is + * `google.protobuf.Empty`. If the original method is standard + * `Get`/`Create`/`Update`, the response should be the resource. For other + * methods, the response should have the type `XxxResponse`, where `Xxx` + * is the original method name. For example, if the original method name + * is `TakeSnapshot()`, the inferred response type is + * `TakeSnapshotResponse`. + * + * @note This class is documented as having more properties of any valid JSON + * type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to + * get the list of properties and then fetch them; or @c + * -additionalProperties to fetch them all at once. + */ +@interface GTLRVision_Operation_Response : GTLRObject +@end + + +/** + * Contains metadata for the BatchAnnotateImages operation. + */ +@interface GTLRVision_OperationMetadata : GTLRObject + +/** The time when the batch request was received. */ +@property(nonatomic, strong, nullable) GTLRDateTime *createTime; + +/** + * Current state of the batch operation. + * + * Likely values: + * @arg @c kGTLRVision_OperationMetadata_State_Cancelled The batch processing + * was cancelled. (Value: "CANCELLED") + * @arg @c kGTLRVision_OperationMetadata_State_Created Request is received. + * (Value: "CREATED") + * @arg @c kGTLRVision_OperationMetadata_State_Done The batch processing is + * done. (Value: "DONE") + * @arg @c kGTLRVision_OperationMetadata_State_Running Request is actively + * being processed. (Value: "RUNNING") + * @arg @c kGTLRVision_OperationMetadata_State_StateUnspecified Invalid. + * (Value: "STATE_UNSPECIFIED") + */ +@property(nonatomic, copy, nullable) NSString *state; + +/** The time when the operation result was last updated. */ +@property(nonatomic, strong, nullable) GTLRDateTime *updateTime; + +@end + + +/** + * The desired output location and metadata. + */ +@interface GTLRVision_OutputConfig : GTLRObject + +/** + * The max number of response protos to put into each output JSON file on + * Google Cloud Storage. + * The valid range is [1, 100]. If not specified, the default value is 20. + * For example, for one pdf file with 100 pages, 100 response protos will + * be generated. If `batch_size` = 20, then 5 json files each + * containing 20 response protos will be written under the prefix + * `gcs_destination`.`uri`. + * Currently, batch_size only applies to GcsDestination, with potential future + * support for other output configurations. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *batchSize; + +/** The Google Cloud Storage location to write the output(s) to. */ +@property(nonatomic, strong, nullable) GTLRVision_GcsDestination *gcsDestination; + +@end + + +/** + * Detected page from OCR. + */ +@interface GTLRVision_Page : GTLRObject + +/** List of blocks of text, images etc on this page. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Block *> *blocks; + +/** + * Confidence of the OCR results on the page. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** + * Page height. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *height; + +/** Additional information detected on the page. */ +@property(nonatomic, strong, nullable) GTLRVision_TextProperty *property; + +/** + * Page width. For PDFs the unit is points. For images (including + * TIFFs) the unit is pixels. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *width; + +@end + + +/** + * Structural unit of text representing a number of words in certain order. + */ +@interface GTLRVision_Paragraph : GTLRObject + +/** + * The bounding box for the paragraph. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the paragraph. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the paragraph. */ +@property(nonatomic, strong, nullable) GTLRVision_TextProperty *property; + +/** List of words in this paragraph. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Word *> *words; + +@end + + +/** + * A 3D position in the image, used primarily for Face detection landmarks. + * A valid Position must have both x and y coordinates. + * The position coordinates are in the same scale as the original image. + */ +@interface GTLRVision_Position : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +/** + * Z coordinate (or depth). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *z; + +@end + + +/** + * A Product contains ReferenceImages. + */ +@interface GTLRVision_Product : GTLRObject + +/** + * User-provided metadata to be stored with this product. Must be at most 4096 + * characters long. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** + * The user-provided name for this Product. Must not be empty. Must be at most + * 4096 characters long. + */ +@property(nonatomic, copy, nullable) NSString *displayName; + +/** + * The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The category for the product identified by the reference image. This should + * be either "homegoods", "apparel", or "toys". + * This field is immutable. + */ +@property(nonatomic, copy, nullable) NSString *productCategory; + +/** + * Key-value pairs that can be attached to a product. At query time, + * constraints can be specified based on the product_labels. + * Note that integer values can be provided as strings, e.g. "1199". Only + * strings with integer values can match a range-based restriction which is + * to be supported soon. + * Multiple values can be assigned to the same key. One product may have up to + * 100 product_labels. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_KeyValue *> *productLabels; + +@end + + +/** + * Parameters for a product search request. + */ +@interface GTLRVision_ProductSearchParams : GTLRObject + +/** + * The bounding polygon around the area of interest in the image. + * Optional. If it is not specified, system discretion will be applied. + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingPoly; + +/** + * The filtering expression. This can be used to restrict search results based + * on Product labels. We currently support an AND of OR of key-value + * expressions, where each expression within an OR must have the same key. + * For example, "(color = red OR color = blue) AND brand = Google" is + * acceptable, but not "(color = red OR brand = Google)" or "color: red". + */ +@property(nonatomic, copy, nullable) NSString *filter; + +/** + * The list of product categories to search in. Currently, we only consider + * the first category, and either "homegoods", "apparel", or "toys" should be + * specified. + */ +@property(nonatomic, strong, nullable) NSArray<NSString *> *productCategories; + +/** + * The resource name of a ProductSet to be searched for similar images. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. + */ +@property(nonatomic, copy, nullable) NSString *productSet; + +@end + + +/** + * Results for a product search request. + */ +@interface GTLRVision_ProductSearchResults : GTLRObject + +/** + * Timestamp of the index which provided these results. Changes made after + * this time are not reflected in the current results. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *indexTime; + +/** + * List of results grouped by products detected in the query image. Each entry + * corresponds to one bounding polygon in the query image, and contains the + * matching products specific to that region. There may be duplicate product + * matches in the union of all the per-product results. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_GroupedResult *> *productGroupedResults; + +/** List of results, one for each product match. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Result *> *results; + +@end + + +/** + * A ProductSet contains Products. A ProductSet can contain a maximum of 1 + * million reference images. If the limit is exceeded, periodic indexing will + * fail. + */ +@interface GTLRVision_ProductSet : GTLRObject + +/** + * The user-provided name for this ProductSet. Must not be empty. Must be at + * most 4096 characters long. + */ +@property(nonatomic, copy, nullable) NSString *displayName; + +/** + * Output only. If there was an error with indexing the product set, the field + * is populated. + * This field is ignored when creating a ProductSet. + */ +@property(nonatomic, strong, nullable) GTLRVision_Status *indexError; + +/** + * Output only. The time at which this ProductSet was last indexed. Query + * results will reflect all updates before this time. If this ProductSet has + * never been indexed, this timestamp is the default value + * "1970-01-01T00:00:00Z". + * This field is ignored when creating a ProductSet. + */ +@property(nonatomic, strong, nullable) GTLRDateTime *indexTime; + +/** + * The resource name of the ProductSet. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. + * This field is ignored when creating a ProductSet. + */ +@property(nonatomic, copy, nullable) NSString *name; + +@end + + +/** + * A `Property` consists of a user-supplied name/value pair. + */ +@interface GTLRVision_Property : GTLRObject + +/** Name of the property. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Value of numeric properties. + * + * Uses NSNumber of unsignedLongLongValue. + */ +@property(nonatomic, strong, nullable) NSNumber *uint64Value; + +/** Value of the property. */ +@property(nonatomic, copy, nullable) NSString *value; + +@end + + +/** + * A `ReferenceImage` represents a product image and its associated metadata, + * such as bounding boxes. + */ +@interface GTLRVision_ReferenceImage : GTLRObject + +/** + * Bounding polygons around the areas of interest in the reference image. + * Optional. If this field is empty, the system will try to detect regions of + * interest. At most 10 bounding polygons will be used. + * The provided shape is converted into a non-rotated rectangle. Once + * converted, the small edge of the rectangle must be greater than or equal + * to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 + * is not). + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_BoundingPoly *> *boundingPolys; + +/** + * The resource name of the reference image. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. + * This field is ignored when creating a reference image. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The Google Cloud Storage URI of the reference image. + * The URI must start with `gs://`. + * Required. + */ +@property(nonatomic, copy, nullable) NSString *uri; + +@end + + +/** + * Request message for the `RemoveProductFromProductSet` method. + */ +@interface GTLRVision_RemoveProductFromProductSetRequest : GTLRObject + +/** + * The resource name for the Product to be removed from this ProductSet. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + */ +@property(nonatomic, copy, nullable) NSString *product; + +@end + + +/** + * Information about a product. + */ +@interface GTLRVision_Result : GTLRObject + +/** + * The resource name of the image from the product that is the closest match + * to the query. + */ +@property(nonatomic, copy, nullable) NSString *image; + +/** The Product. */ +@property(nonatomic, strong, nullable) GTLRVision_Product *product; + +/** + * A confidence level on the match, ranging from 0 (no confidence) to + * 1 (full confidence). + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Set of features pertaining to the image, computed by computer vision + * methods over safe-search verticals (for example, adult, spoof, medical, + * violence). + */ +@interface GTLRVision_SafeSearchAnnotation : GTLRObject + +/** + * Represents the adult content likelihood for the image. Adult content may + * contain elements such as nudity, pornographic images or cartoons, or + * sexual activities. + * + * Likely values: + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_Likely It is likely that + * the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_Unknown Unknown likelihood. + * (Value: "UNKNOWN") + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Adult_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *adult; + +/** + * Likelihood that this is a medical image. + * + * Likely values: + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_Likely It is likely that + * the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Medical_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *medical; + +/** + * Likelihood that the request image contains racy content. Racy content may + * include (but is not limited to) skimpy or sheer clothing, strategically + * covered nudity, lewd or provocative poses, or close-ups of sensitive + * body areas. + * + * Likely values: + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_Likely It is likely that the + * image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_Possible It is possible that + * the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_Unknown Unknown likelihood. + * (Value: "UNKNOWN") + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_Unlikely It is unlikely that + * the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_VeryLikely It is very likely + * that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Racy_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *racy; + +/** + * Spoof likelihood. The likelihood that an modification + * was made to the image's canonical version to make it appear + * funny or offensive. + * + * Likely values: + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_Likely It is likely that + * the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_Unknown Unknown likelihood. + * (Value: "UNKNOWN") + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Spoof_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *spoof; + +/** + * Likelihood that this image contains violent content. + * + * Likely values: + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_Likely It is likely that + * the image belongs to the specified vertical. (Value: "LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_Possible It is possible + * that the image belongs to the specified vertical. (Value: "POSSIBLE") + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_Unknown Unknown + * likelihood. (Value: "UNKNOWN") + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_Unlikely It is unlikely + * that the image belongs to the specified vertical. (Value: "UNLIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_VeryLikely It is very + * likely that the image belongs to the specified vertical. (Value: + * "VERY_LIKELY") + * @arg @c kGTLRVision_SafeSearchAnnotation_Violence_VeryUnlikely It is very + * unlikely that the image belongs to the specified vertical. (Value: + * "VERY_UNLIKELY") + */ +@property(nonatomic, copy, nullable) NSString *violence; + +@end + + +/** + * The `Status` type defines a logical error model that is suitable for + * different + * programming environments, including REST APIs and RPC APIs. It is used by + * [gRPC](https://github.com/grpc). The error model is designed to be: + * - Simple to use and understand for most users + * - Flexible enough to meet unexpected needs + * # Overview + * The `Status` message contains three pieces of data: error code, error + * message, + * and error details. The error code should be an enum value of + * google.rpc.Code, but it may accept additional error codes if needed. The + * error message should be a developer-facing English message that helps + * developers *understand* and *resolve* the error. If a localized user-facing + * error message is needed, put the localized message in the error details or + * localize it in the client. The optional error details may contain arbitrary + * information about the error. There is a predefined set of error detail types + * in the package `google.rpc` that can be used for common error conditions. + * # Language mapping + * The `Status` message is the logical representation of the error model, but + * it + * is not necessarily the actual wire format. When the `Status` message is + * exposed in different client libraries and different wire protocols, it can + * be + * mapped differently. For example, it will likely be mapped to some exceptions + * in Java, but more likely mapped to some error codes in C. + * # Other uses + * The error model and the `Status` message can be used in a variety of + * environments, either with or without APIs, to provide a + * consistent developer experience across different environments. + * Example uses of this error model include: + * - Partial errors. If a service needs to return partial errors to the client, + * it may embed the `Status` in the normal response to indicate the partial + * errors. + * - Workflow errors. A typical workflow has multiple steps. Each step may + * have a `Status` message for error reporting. + * - Batch operations. If a client uses batch request and batch response, the + * `Status` message should be used directly inside batch response, one for + * each error sub-response. + * - Asynchronous operations. If an API call embeds asynchronous operation + * results in its response, the status of those operations should be + * represented directly using the `Status` message. + * - Logging. If some API errors are stored in logs, the message `Status` could + * be used directly after any stripping needed for security/privacy reasons. + */ +@interface GTLRVision_Status : GTLRObject + +/** + * The status code, which should be an enum value of google.rpc.Code. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *code; + +/** + * A list of messages that carry the error details. There is a common set of + * message types for APIs to use. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Status_Details_Item *> *details; + +/** + * A developer-facing error message, which should be in English. Any + * user-facing error message should be localized and sent in the + * google.rpc.Status.details field, or localized by the client. + */ +@property(nonatomic, copy, nullable) NSString *message; + +@end + + +/** + * GTLRVision_Status_Details_Item + * + * @note This class is documented as having more properties of any valid JSON + * type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to + * get the list of properties and then fetch them; or @c + * -additionalProperties to fetch them all at once. + */ +@interface GTLRVision_Status_Details_Item : GTLRObject +@end + + +/** + * A single symbol representation. + */ +@interface GTLRVision_Symbol : GTLRObject + +/** + * The bounding box for the symbol. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertice order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the symbol. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the symbol. */ +@property(nonatomic, strong, nullable) GTLRVision_TextProperty *property; + +/** The actual UTF-8 representation of the symbol. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * TextAnnotation contains a structured representation of OCR extracted text. + * The hierarchy of an OCR extracted text structure is like this: + * TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol + * Each structural component, starting from Page, may further have their own + * properties. Properties describe detected languages, breaks etc.. Please + * refer + * to the TextAnnotation.TextProperty message definition below for more + * detail. + */ +@interface GTLRVision_TextAnnotation : GTLRObject + +/** List of pages detected by OCR. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Page *> *pages; + +/** UTF-8 text detected on the pages. */ +@property(nonatomic, copy, nullable) NSString *text; + +@end + + +/** + * Additional information detected on the structural component. + */ +@interface GTLRVision_TextProperty : GTLRObject + +/** Detected start or end of a text segment. */ +@property(nonatomic, strong, nullable) GTLRVision_DetectedBreak *detectedBreak; + +/** A list of detected languages together with confidence. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_DetectedLanguage *> *detectedLanguages; + +@end + + +/** + * A vertex represents a 2D point in the image. + * NOTE: the vertex coordinates are in the same scale as the original image. + */ +@interface GTLRVision_Vertex : GTLRObject + +/** + * X coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *x; + +/** + * Y coordinate. + * + * Uses NSNumber of intValue. + */ +@property(nonatomic, strong, nullable) NSNumber *y; + +@end + + +/** + * Relevant information for the image from the Internet. + */ +@interface GTLRVision_WebDetection : GTLRObject + +/** + * The service's best guess as to the topic of the request image. + * Inferred from similar images on the open web. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebLabel *> *bestGuessLabels; + +/** + * Fully matching images from the Internet. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebImage *> *fullMatchingImages; + +/** Web pages containing the matching images from the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebPage *> *pagesWithMatchingImages; + +/** + * Partial matching images from the Internet. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebImage *> *partialMatchingImages; + +/** The visually similar image results. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebImage *> *visuallySimilarImages; + +/** Deduced entities from similar images on the Internet. */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebEntity *> *webEntities; + +@end + + +/** + * Parameters for web detection request. + */ +@interface GTLRVision_WebDetectionParams : GTLRObject + +/** + * Whether to include results derived from the geo information in the image. + * + * Uses NSNumber of boolValue. + */ +@property(nonatomic, strong, nullable) NSNumber *includeGeoResults; + +@end + + +/** + * Entity deduced from similar images on the Internet. + */ +@interface GTLRVision_WebEntity : GTLRObject + +/** + * Canonical description of the entity, in English. + * + * Remapped to 'descriptionProperty' to avoid NSObject's 'description'. + */ +@property(nonatomic, copy, nullable) NSString *descriptionProperty; + +/** Opaque entity ID. */ +@property(nonatomic, copy, nullable) NSString *entityId; + +/** + * Overall relevancy score for the entity. + * Not normalized and not comparable across different image queries. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +@end + + +/** + * Metadata for online images. + */ +@interface GTLRVision_WebImage : GTLRObject + +/** + * (Deprecated) Overall relevancy score for the image. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result image URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * Label to provide extra metadata for the web detection. + */ +@interface GTLRVision_WebLabel : GTLRObject + +/** Label for extra metadata. */ +@property(nonatomic, copy, nullable) NSString *label; + +/** + * The BCP-47 language code for `label`, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + */ +@property(nonatomic, copy, nullable) NSString *languageCode; + +@end + + +/** + * Metadata for web pages. + */ +@interface GTLRVision_WebPage : GTLRObject + +/** + * Fully matching images on the page. + * Can include resized copies of the query image. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebImage *> *fullMatchingImages; + +/** Title for the web page, may contain HTML markups. */ +@property(nonatomic, copy, nullable) NSString *pageTitle; + +/** + * Partial matching images on the page. + * Those images are similar enough to share some key-point features. For + * example an original image will likely have partial matching for its + * crops. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_WebImage *> *partialMatchingImages; + +/** + * (Deprecated) Overall relevancy score for the web page. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *score; + +/** The result web page URL. */ +@property(nonatomic, copy, nullable) NSString *url; + +@end + + +/** + * A word representation. + */ +@interface GTLRVision_Word : GTLRObject + +/** + * The bounding box for the word. + * The vertices are in the order of top-left, top-right, bottom-right, + * bottom-left. When a rotation of the bounding box is detected the rotation + * is represented as around the top-left corner as defined when the text is + * read in the 'natural' orientation. + * For example: + * * when the text is horizontal it might look like: + * 0----1 + * | | + * 3----2 + * * when it's rotated 180 degrees around the top-left corner it becomes: + * 2----3 + * | | + * 1----0 + * and the vertex order will still be (0, 1, 2, 3). + */ +@property(nonatomic, strong, nullable) GTLRVision_BoundingPoly *boundingBox; + +/** + * Confidence of the OCR results for the word. Range [0, 1]. + * + * Uses NSNumber of floatValue. + */ +@property(nonatomic, strong, nullable) NSNumber *confidence; + +/** Additional information detected for the word. */ +@property(nonatomic, strong, nullable) GTLRVision_TextProperty *property; + +/** + * List of symbols in the word. + * The order of the symbols follows the natural reading order. + */ +@property(nonatomic, strong, nullable) NSArray<GTLRVision_Symbol *> *symbols; + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionQuery.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionQuery.h new file mode 100644 index 000000000..45b308320 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionQuery.h @@ -0,0 +1,1235 @@ +// NOTE: This file was generated by the ServiceGenerator. + +// ---------------------------------------------------------------------------- +// API: +// Cloud Vision API (vision/v1) +// Description: +// Integrates Google Vision features, including image labeling, face, logo, +// and landmark detection, optical character recognition (OCR), and detection +// of explicit content, into applications. +// Documentation: +// https://cloud.google.com/vision/ + +#if GTLR_BUILT_AS_FRAMEWORK + #import "GTLR/GTLRQuery.h" +#else + #import "GTLRQuery.h" +#endif + +#if GTLR_RUNTIME_VERSION != 3000 +#error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source. +#endif + +@class GTLRVision_AddProductToProductSetRequest; +@class GTLRVision_AsyncBatchAnnotateFilesRequest; +@class GTLRVision_BatchAnnotateImagesRequest; +@class GTLRVision_CancelOperationRequest; +@class GTLRVision_ImportProductSetsRequest; +@class GTLRVision_Product; +@class GTLRVision_ProductSet; +@class GTLRVision_ReferenceImage; +@class GTLRVision_RemoveProductFromProductSetRequest; + +// Generated comments include content from the discovery document; avoid them +// causing warnings since clang's checks are some what arbitrary. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdocumentation" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Parent class for other Vision query classes. + */ +@interface GTLRVisionQuery : GTLRQuery + +/** Selector specifying which fields to include in a partial response. */ +@property(nonatomic, copy, nullable) NSString *fields; + +@end + +/** + * Run asynchronous image detection and annotation for a list of generic + * files, such as PDF files, which may contain multiple pages and multiple + * images per page. Progress and results can be retrieved through the + * `google.longrunning.Operations` interface. + * `Operation.metadata` contains `OperationMetadata` (metadata). + * `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). + * + * Method: vision.files.asyncBatchAnnotate + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_FilesAsyncBatchAnnotate : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForFilesAsyncBatchAnnotateWithObject:] + +/** + * Fetches a @c GTLRVision_Operation. + * + * Run asynchronous image detection and annotation for a list of generic + * files, such as PDF files, which may contain multiple pages and multiple + * images per page. Progress and results can be retrieved through the + * `google.longrunning.Operations` interface. + * `Operation.metadata` contains `OperationMetadata` (metadata). + * `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). + * + * @param object The @c GTLRVision_AsyncBatchAnnotateFilesRequest to include in + * the query. + * + * @return GTLRVisionQuery_FilesAsyncBatchAnnotate + */ ++ (instancetype)queryWithObject:(GTLRVision_AsyncBatchAnnotateFilesRequest *)object; + +@end + +/** + * Run image detection and annotation for a batch of images. + * + * Method: vision.images.annotate + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ImagesAnnotate : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForImagesAnnotateWithObject:] + +/** + * Fetches a @c GTLRVision_BatchAnnotateImagesResponse. + * + * Run image detection and annotation for a batch of images. + * + * @param object The @c GTLRVision_BatchAnnotateImagesRequest to include in the + * query. + * + * @return GTLRVisionQuery_ImagesAnnotate + */ ++ (instancetype)queryWithObject:(GTLRVision_BatchAnnotateImagesRequest *)object; + +@end + +/** + * Gets the latest state of a long-running operation. Clients can use this + * method to poll the operation result at intervals as recommended by the API + * service. + * + * Method: vision.locations.operations.get + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_LocationsOperationsGet : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForLocationsOperationsGetWithname:] + +/** The name of the operation resource. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Operation. + * + * Gets the latest state of a long-running operation. Clients can use this + * method to poll the operation result at intervals as recommended by the API + * service. + * + * @param name The name of the operation resource. + * + * @return GTLRVisionQuery_LocationsOperationsGet + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Starts asynchronous cancellation on a long-running operation. The server + * makes a best effort to cancel the operation, but success is not + * guaranteed. If the server doesn't support this method, it returns + * `google.rpc.Code.UNIMPLEMENTED`. Clients can use + * Operations.GetOperation or + * other methods to check whether the cancellation succeeded or whether the + * operation completed despite cancellation. On successful cancellation, + * the operation is not deleted; instead, it becomes an operation with + * an Operation.error value with a google.rpc.Status.code of 1, + * corresponding to `Code.CANCELLED`. + * + * Method: vision.operations.cancel + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_OperationsCancel : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForOperationsCancelWithObject:name:] + +/** The name of the operation resource to be cancelled. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Starts asynchronous cancellation on a long-running operation. The server + * makes a best effort to cancel the operation, but success is not + * guaranteed. If the server doesn't support this method, it returns + * `google.rpc.Code.UNIMPLEMENTED`. Clients can use + * Operations.GetOperation or + * other methods to check whether the cancellation succeeded or whether the + * operation completed despite cancellation. On successful cancellation, + * the operation is not deleted; instead, it becomes an operation with + * an Operation.error value with a google.rpc.Status.code of 1, + * corresponding to `Code.CANCELLED`. + * + * @param object The @c GTLRVision_CancelOperationRequest to include in the + * query. + * @param name The name of the operation resource to be cancelled. + * + * @return GTLRVisionQuery_OperationsCancel + */ ++ (instancetype)queryWithObject:(GTLRVision_CancelOperationRequest *)object + name:(NSString *)name; + +@end + +/** + * Deletes a long-running operation. This method indicates that the client is + * no longer interested in the operation result. It does not cancel the + * operation. If the server doesn't support this method, it returns + * `google.rpc.Code.UNIMPLEMENTED`. + * + * Method: vision.operations.delete + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_OperationsDelete : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForOperationsDeleteWithname:] + +/** The name of the operation resource to be deleted. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Deletes a long-running operation. This method indicates that the client is + * no longer interested in the operation result. It does not cancel the + * operation. If the server doesn't support this method, it returns + * `google.rpc.Code.UNIMPLEMENTED`. + * + * @param name The name of the operation resource to be deleted. + * + * @return GTLRVisionQuery_OperationsDelete + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Gets the latest state of a long-running operation. Clients can use this + * method to poll the operation result at intervals as recommended by the API + * service. + * + * Method: vision.operations.get + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_OperationsGet : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForOperationsGetWithname:] + +/** The name of the operation resource. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Operation. + * + * Gets the latest state of a long-running operation. Clients can use this + * method to poll the operation result at intervals as recommended by the API + * service. + * + * @param name The name of the operation resource. + * + * @return GTLRVisionQuery_OperationsGet + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Lists operations that match the specified filter in the request. If the + * server doesn't support this method, it returns `UNIMPLEMENTED`. + * NOTE: the `name` binding allows API services to override the binding + * to use different resource name schemes, such as `users/ * /operations`. To + * override the binding, API services can add a binding such as + * `"/v1/{name=users/ *}/operations"` to their service configuration. + * For backwards compatibility, the default name includes the operations + * collection id, however overriding users must ensure the name binding + * is the parent resource, without the operations collection id. + * + * Method: vision.operations.list + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_OperationsList : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForOperationsListWithname:] + +/** The standard list filter. */ +@property(nonatomic, copy, nullable) NSString *filter; + +/** The name of the operation's parent resource. */ +@property(nonatomic, copy, nullable) NSString *name; + +/** The standard list page size. */ +@property(nonatomic, assign) NSInteger pageSize; + +/** The standard list page token. */ +@property(nonatomic, copy, nullable) NSString *pageToken; + +/** + * Fetches a @c GTLRVision_ListOperationsResponse. + * + * Lists operations that match the specified filter in the request. If the + * server doesn't support this method, it returns `UNIMPLEMENTED`. + * NOTE: the `name` binding allows API services to override the binding + * to use different resource name schemes, such as `users/ * /operations`. To + * override the binding, API services can add a binding such as + * `"/v1/{name=users/ *}/operations"` to their service configuration. + * For backwards compatibility, the default name includes the operations + * collection id, however overriding users must ensure the name binding + * is the parent resource, without the operations collection id. + * + * @param name The name of the operation's parent resource. + * + * @return GTLRVisionQuery_OperationsList + * + * @note Automatic pagination will be done when @c shouldFetchNextPages is + * enabled. See @c shouldFetchNextPages on @c GTLRService for more + * information. + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Creates and returns a new product resource. + * Possible errors: + * * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 + * characters. + * * Returns INVALID_ARGUMENT if description is longer than 4096 characters. + * * Returns INVALID_ARGUMENT if product_category is missing or invalid. + * + * Method: vision.projects.locations.products.create + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsCreate : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsCreateWithObject:parent:] + +/** + * The project in which the Product should be created. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * A user-supplied resource id for this Product. If set, the server will + * attempt to use this value as the resource id. If it is already in use, an + * error is returned with code ALREADY_EXISTS. Must be at most 128 characters + * long. It cannot contain the character `/`. + */ +@property(nonatomic, copy, nullable) NSString *productId; + +/** + * Fetches a @c GTLRVision_Product. + * + * Creates and returns a new product resource. + * Possible errors: + * * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 + * characters. + * * Returns INVALID_ARGUMENT if description is longer than 4096 characters. + * * Returns INVALID_ARGUMENT if product_category is missing or invalid. + * + * @param object The @c GTLRVision_Product to include in the query. + * @param parent The project in which the Product should be created. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductsCreate + */ ++ (instancetype)queryWithObject:(GTLRVision_Product *)object + parent:(NSString *)parent; + +@end + +/** + * Permanently deletes a product and its reference images. + * Metadata of the product and all its images will be deleted right away, but + * search queries against ProductSets containing the product may still work + * until all related caches are refreshed. + * Possible errors: + * * Returns NOT_FOUND if the product does not exist. + * + * Method: vision.projects.locations.products.delete + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsDelete : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsDeleteWithname:] + +/** + * Resource name of product to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Permanently deletes a product and its reference images. + * Metadata of the product and all its images will be deleted right away, but + * search queries against ProductSets containing the product may still work + * until all related caches are refreshed. + * Possible errors: + * * Returns NOT_FOUND if the product does not exist. + * + * @param name Resource name of product to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductsDelete + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Adds a Product to the specified ProductSet. If the Product is already + * present, no change is made. + * One Product can be added to at most 100 ProductSets. + * Possible errors: + * * Returns NOT_FOUND if the Product or the ProductSet doesn't exist. + * + * Method: vision.projects.locations.productSets.addProduct + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsAddProduct : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsAddProductWithObject:name:] + +/** + * The resource name for the ProductSet to modify. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Adds a Product to the specified ProductSet. If the Product is already + * present, no change is made. + * One Product can be added to at most 100 ProductSets. + * Possible errors: + * * Returns NOT_FOUND if the Product or the ProductSet doesn't exist. + * + * @param object The @c GTLRVision_AddProductToProductSetRequest to include in + * the query. + * @param name The resource name for the ProductSet to modify. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsAddProduct + */ ++ (instancetype)queryWithObject:(GTLRVision_AddProductToProductSetRequest *)object + name:(NSString *)name; + +@end + +/** + * Creates and returns a new ProductSet resource. + * Possible errors: + * * Returns INVALID_ARGUMENT if display_name is missing, or is longer than + * 4096 characters. + * + * Method: vision.projects.locations.productSets.create + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsCreate : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsCreateWithObject:parent:] + +/** + * The project in which the ProductSet should be created. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * A user-supplied resource id for this ProductSet. If set, the server will + * attempt to use this value as the resource id. If it is already in use, an + * error is returned with code ALREADY_EXISTS. Must be at most 128 characters + * long. It cannot contain the character `/`. + */ +@property(nonatomic, copy, nullable) NSString *productSetId; + +/** + * Fetches a @c GTLRVision_ProductSet. + * + * Creates and returns a new ProductSet resource. + * Possible errors: + * * Returns INVALID_ARGUMENT if display_name is missing, or is longer than + * 4096 characters. + * + * @param object The @c GTLRVision_ProductSet to include in the query. + * @param parent The project in which the ProductSet should be created. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsCreate + */ ++ (instancetype)queryWithObject:(GTLRVision_ProductSet *)object + parent:(NSString *)parent; + +@end + +/** + * Permanently deletes a ProductSet. Products and ReferenceImages in the + * ProductSet are not deleted. + * The actual image files are not deleted from Google Cloud Storage. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * + * Method: vision.projects.locations.productSets.delete + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsDelete : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsDeleteWithname:] + +/** + * Resource name of the ProductSet to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Permanently deletes a ProductSet. Products and ReferenceImages in the + * ProductSet are not deleted. + * The actual image files are not deleted from Google Cloud Storage. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * + * @param name Resource name of the ProductSet to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsDelete + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Gets information associated with a ProductSet. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * + * Method: vision.projects.locations.productSets.get + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsGet : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsGetWithname:] + +/** + * Resource name of the ProductSet to get. + * Format is: + * `projects/PROJECT_ID/locations/LOG_ID/productSets/PRODUCT_SET_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_ProductSet. + * + * Gets information associated with a ProductSet. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * + * @param name Resource name of the ProductSet to get. + * Format is: + * `projects/PROJECT_ID/locations/LOG_ID/productSets/PRODUCT_SET_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsGet + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Asynchronous API that imports a list of reference images to specified + * product sets based on a list of image information. + * The google.longrunning.Operation API can be used to keep track of the + * progress and results of the request. + * `Operation.metadata` contains `BatchOperationMetadata`. (progress) + * `Operation.response` contains `ImportProductSetsResponse`. (results) + * The input source of this method is a csv file on Google Cloud Storage. + * For the format of the csv file please see + * ImportProductSetsGcsSource.csv_file_uri. + * + * Method: vision.projects.locations.productSets.import + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsImport : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsImportWithObject:parent:] + +/** + * The project in which the ProductSets should be imported. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * Fetches a @c GTLRVision_Operation. + * + * Asynchronous API that imports a list of reference images to specified + * product sets based on a list of image information. + * The google.longrunning.Operation API can be used to keep track of the + * progress and results of the request. + * `Operation.metadata` contains `BatchOperationMetadata`. (progress) + * `Operation.response` contains `ImportProductSetsResponse`. (results) + * The input source of this method is a csv file on Google Cloud Storage. + * For the format of the csv file please see + * ImportProductSetsGcsSource.csv_file_uri. + * + * @param object The @c GTLRVision_ImportProductSetsRequest to include in the + * query. + * @param parent The project in which the ProductSets should be imported. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsImport + */ ++ (instancetype)queryWithObject:(GTLRVision_ImportProductSetsRequest *)object + parent:(NSString *)parent; + +@end + +/** + * Lists ProductSets in an unspecified order. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100, or less + * than 1. + * + * Method: vision.projects.locations.productSets.list + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsList : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsListWithparent:] + +/** The maximum number of items to return. Default 10, maximum 100. */ +@property(nonatomic, assign) NSInteger pageSize; + +/** The next_page_token returned from a previous List request, if any. */ +@property(nonatomic, copy, nullable) NSString *pageToken; + +/** + * The project from which ProductSets should be listed. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * Fetches a @c GTLRVision_ListProductSetsResponse. + * + * Lists ProductSets in an unspecified order. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100, or less + * than 1. + * + * @param parent The project from which ProductSets should be listed. + * Format is `projects/PROJECT_ID/locations/LOC_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsList + * + * @note Automatic pagination will be done when @c shouldFetchNextPages is + * enabled. See @c shouldFetchNextPages on @c GTLRService for more + * information. + */ ++ (instancetype)queryWithParent:(NSString *)parent; + +@end + +/** + * Makes changes to a ProductSet resource. + * Only display_name can be updated currently. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * * Returns INVALID_ARGUMENT if display_name is present in update_mask but + * missing from the request or longer than 4096 characters. + * + * Method: vision.projects.locations.productSets.patch + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsPatch : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsPatchWithObject:name:] + +/** + * The resource name of the ProductSet. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. + * This field is ignored when creating a ProductSet. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The FieldMask that specifies which fields to + * update. + * If update_mask isn't specified, all mutable fields are to be updated. + * Valid mask path is `display_name`. + * + * String format is a comma-separated list of fields. + */ +@property(nonatomic, copy, nullable) NSString *updateMask; + +/** + * Fetches a @c GTLRVision_ProductSet. + * + * Makes changes to a ProductSet resource. + * Only display_name can be updated currently. + * Possible errors: + * * Returns NOT_FOUND if the ProductSet does not exist. + * * Returns INVALID_ARGUMENT if display_name is present in update_mask but + * missing from the request or longer than 4096 characters. + * + * @param object The @c GTLRVision_ProductSet to include in the query. + * @param name The resource name of the ProductSet. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. + * This field is ignored when creating a ProductSet. + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsPatch + */ ++ (instancetype)queryWithObject:(GTLRVision_ProductSet *)object + name:(NSString *)name; + +@end + +/** + * Lists the Products in a ProductSet, in an unspecified order. If the + * ProductSet does not exist, the products field of the response will be + * empty. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. + * + * Method: vision.projects.locations.productSets.products.list + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsProductsList : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsProductsListWithname:] + +/** + * The ProductSet resource for which to retrieve Products. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** The maximum number of items to return. Default 10, maximum 100. */ +@property(nonatomic, assign) NSInteger pageSize; + +/** The next_page_token returned from a previous List request, if any. */ +@property(nonatomic, copy, nullable) NSString *pageToken; + +/** + * Fetches a @c GTLRVision_ListProductsInProductSetResponse. + * + * Lists the Products in a ProductSet, in an unspecified order. If the + * ProductSet does not exist, the products field of the response will be + * empty. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. + * + * @param name The ProductSet resource for which to retrieve Products. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsProductsList + * + * @note Automatic pagination will be done when @c shouldFetchNextPages is + * enabled. See @c shouldFetchNextPages on @c GTLRService for more + * information. + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Removes a Product from the specified ProductSet. + * Possible errors: + * * Returns NOT_FOUND If the Product is not found under the ProductSet. + * + * Method: vision.projects.locations.productSets.removeProduct + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductSetsRemoveProduct : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductSetsRemoveProductWithObject:name:] + +/** + * The resource name for the ProductSet to modify. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Removes a Product from the specified ProductSet. + * Possible errors: + * * Returns NOT_FOUND If the Product is not found under the ProductSet. + * + * @param object The @c GTLRVision_RemoveProductFromProductSetRequest to + * include in the query. + * @param name The resource name for the ProductSet to modify. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductSetsRemoveProduct + */ ++ (instancetype)queryWithObject:(GTLRVision_RemoveProductFromProductSetRequest *)object + name:(NSString *)name; + +@end + +/** + * Gets information associated with a Product. + * Possible errors: + * * Returns NOT_FOUND if the Product does not exist. + * + * Method: vision.projects.locations.products.get + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsGet : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsGetWithname:] + +/** + * Resource name of the Product to get. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Product. + * + * Gets information associated with a Product. + * Possible errors: + * * Returns NOT_FOUND if the Product does not exist. + * + * @param name Resource name of the Product to get. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductsGet + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Lists products in an unspecified order. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. + * + * Method: vision.projects.locations.products.list + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsList : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsListWithparent:] + +/** The maximum number of items to return. Default 10, maximum 100. */ +@property(nonatomic, assign) NSInteger pageSize; + +/** The next_page_token returned from a previous List request, if any. */ +@property(nonatomic, copy, nullable) NSString *pageToken; + +/** + * The project OR ProductSet from which Products should be listed. + * Format: + * `projects/PROJECT_ID/locations/LOC_ID` + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * Fetches a @c GTLRVision_ListProductsResponse. + * + * Lists products in an unspecified order. + * Possible errors: + * * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. + * + * @param parent The project OR ProductSet from which Products should be + * listed. + * Format: + * `projects/PROJECT_ID/locations/LOC_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductsList + * + * @note Automatic pagination will be done when @c shouldFetchNextPages is + * enabled. See @c shouldFetchNextPages on @c GTLRService for more + * information. + */ ++ (instancetype)queryWithParent:(NSString *)parent; + +@end + +/** + * Makes changes to a Product resource. + * Only the `display_name`, `description`, and `labels` fields can be updated + * right now. + * If labels are updated, the change will not be reflected in queries until + * the next index time. + * Possible errors: + * * Returns NOT_FOUND if the Product does not exist. + * * Returns INVALID_ARGUMENT if display_name is present in update_mask but is + * missing from the request or longer than 4096 characters. + * * Returns INVALID_ARGUMENT if description is present in update_mask but is + * longer than 4096 characters. + * * Returns INVALID_ARGUMENT if product_category is present in update_mask. + * + * Method: vision.projects.locations.products.patch + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsPatch : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsPatchWithObject:name:] + +/** + * The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * The FieldMask that specifies which fields + * to update. + * If update_mask isn't specified, all mutable fields are to be updated. + * Valid mask paths include `product_labels`, `display_name`, and + * `description`. + * + * String format is a comma-separated list of fields. + */ +@property(nonatomic, copy, nullable) NSString *updateMask; + +/** + * Fetches a @c GTLRVision_Product. + * + * Makes changes to a Product resource. + * Only the `display_name`, `description`, and `labels` fields can be updated + * right now. + * If labels are updated, the change will not be reflected in queries until + * the next index time. + * Possible errors: + * * Returns NOT_FOUND if the Product does not exist. + * * Returns INVALID_ARGUMENT if display_name is present in update_mask but is + * missing from the request or longer than 4096 characters. + * * Returns INVALID_ARGUMENT if description is present in update_mask but is + * longer than 4096 characters. + * * Returns INVALID_ARGUMENT if product_category is present in update_mask. + * + * @param object The @c GTLRVision_Product to include in the query. + * @param name The resource name of the product. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * This field is ignored when creating a product. + * + * @return GTLRVisionQuery_ProjectsLocationsProductsPatch + */ ++ (instancetype)queryWithObject:(GTLRVision_Product *)object + name:(NSString *)name; + +@end + +/** + * Creates and returns a new ReferenceImage resource. + * The `bounding_poly` field is optional. If `bounding_poly` is not specified, + * the system will try to detect regions of interest in the image that are + * compatible with the product_category on the parent product. If it is + * specified, detection is ALWAYS skipped. The system converts polygons into + * non-rotated rectangles. + * Note that the pipeline will resize the image if the image resolution is too + * large to process (above 50MP). + * Possible errors: + * * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 + * characters. + * * Returns INVALID_ARGUMENT if the product does not exist. + * * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing + * compatible with the parent product's product_category is detected. + * * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons. + * + * Method: vision.projects.locations.products.referenceImages.create + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesCreate : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsReferenceImagesCreateWithObject:parent:] + +/** + * Resource name of the product in which to create the reference image. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * A user-supplied resource id for the ReferenceImage to be added. If set, + * the server will attempt to use this value as the resource id. If it is + * already in use, an error is returned with code ALREADY_EXISTS. Must be at + * most 128 characters long. It cannot contain the character `/`. + */ +@property(nonatomic, copy, nullable) NSString *referenceImageId; + +/** + * Fetches a @c GTLRVision_ReferenceImage. + * + * Creates and returns a new ReferenceImage resource. + * The `bounding_poly` field is optional. If `bounding_poly` is not specified, + * the system will try to detect regions of interest in the image that are + * compatible with the product_category on the parent product. If it is + * specified, detection is ALWAYS skipped. The system converts polygons into + * non-rotated rectangles. + * Note that the pipeline will resize the image if the image resolution is too + * large to process (above 50MP). + * Possible errors: + * * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 + * characters. + * * Returns INVALID_ARGUMENT if the product does not exist. + * * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing + * compatible with the parent product's product_category is detected. + * * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons. + * + * @param object The @c GTLRVision_ReferenceImage to include in the query. + * @param parent Resource name of the product in which to create the reference + * image. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesCreate + */ ++ (instancetype)queryWithObject:(GTLRVision_ReferenceImage *)object + parent:(NSString *)parent; + +@end + +/** + * Permanently deletes a reference image. + * The image metadata will be deleted right away, but search queries + * against ProductSets containing the image may still work until all related + * caches are refreshed. + * The actual image files are not deleted from Google Cloud Storage. + * Possible errors: + * * Returns NOT_FOUND if the reference image does not exist. + * + * Method: vision.projects.locations.products.referenceImages.delete + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesDelete : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsReferenceImagesDeleteWithname:] + +/** + * The resource name of the reference image to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID` + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_Empty. + * + * Permanently deletes a reference image. + * The image metadata will be deleted right away, but search queries + * against ProductSets containing the image may still work until all related + * caches are refreshed. + * The actual image files are not deleted from Google Cloud Storage. + * Possible errors: + * * Returns NOT_FOUND if the reference image does not exist. + * + * @param name The resource name of the reference image to delete. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID` + * + * @return GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesDelete + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Gets information associated with a ReferenceImage. + * Possible errors: + * * Returns NOT_FOUND if the specified image does not exist. + * + * Method: vision.projects.locations.products.referenceImages.get + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesGet : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsReferenceImagesGetWithname:] + +/** + * The resource name of the ReferenceImage to get. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. + */ +@property(nonatomic, copy, nullable) NSString *name; + +/** + * Fetches a @c GTLRVision_ReferenceImage. + * + * Gets information associated with a ReferenceImage. + * Possible errors: + * * Returns NOT_FOUND if the specified image does not exist. + * + * @param name The resource name of the ReferenceImage to get. + * Format is: + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesGet + */ ++ (instancetype)queryWithName:(NSString *)name; + +@end + +/** + * Lists reference images. + * Possible errors: + * * Returns NOT_FOUND if the parent product does not exist. + * * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less + * than 1. + * + * Method: vision.projects.locations.products.referenceImages.list + * + * Authorization scope(s): + * @c kGTLRAuthScopeVisionCloudPlatform + * @c kGTLRAuthScopeVisionCloudVision + */ +@interface GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesList : GTLRVisionQuery +// Previous library name was +// +[GTLQueryVision queryForProjectsLocationsProductsReferenceImagesListWithparent:] + +/** The maximum number of items to return. Default 10, maximum 100. */ +@property(nonatomic, assign) NSInteger pageSize; + +/** + * A token identifying a page of results to be returned. This is the value + * of `nextPageToken` returned in a previous reference image list request. + * Defaults to the first page if not specified. + */ +@property(nonatomic, copy, nullable) NSString *pageToken; + +/** + * Resource name of the product containing the reference images. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + */ +@property(nonatomic, copy, nullable) NSString *parent; + +/** + * Fetches a @c GTLRVision_ListReferenceImagesResponse. + * + * Lists reference images. + * Possible errors: + * * Returns NOT_FOUND if the parent product does not exist. + * * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less + * than 1. + * + * @param parent Resource name of the product containing the reference images. + * Format is + * `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. + * + * @return GTLRVisionQuery_ProjectsLocationsProductsReferenceImagesList + * + * @note Automatic pagination will be done when @c shouldFetchNextPages is + * enabled. See @c shouldFetchNextPages on @c GTLRService for more + * information. + */ ++ (instancetype)queryWithParent:(NSString *)parent; + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionService.h b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionService.h new file mode 100644 index 000000000..c1646f5ff --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Headers/GTLRVisionService.h @@ -0,0 +1,88 @@ +// NOTE: This file was generated by the ServiceGenerator. + +// ---------------------------------------------------------------------------- +// API: +// Cloud Vision API (vision/v1) +// Description: +// Integrates Google Vision features, including image labeling, face, logo, +// and landmark detection, optical character recognition (OCR), and detection +// of explicit content, into applications. +// Documentation: +// https://cloud.google.com/vision/ + +#if GTLR_BUILT_AS_FRAMEWORK + #import "GTLR/GTLRService.h" +#else + #import "GTLRService.h" +#endif + +#if GTLR_RUNTIME_VERSION != 3000 +#error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source. +#endif + +// Generated comments include content from the discovery document; avoid them +// causing warnings since clang's checks are some what arbitrary. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdocumentation" + +NS_ASSUME_NONNULL_BEGIN + +// ---------------------------------------------------------------------------- +// Authorization scopes + +/** + * Authorization scope: View and manage your data across Google Cloud Platform + * services + * + * Value "https://www.googleapis.com/auth/cloud-platform" + */ +GTLR_EXTERN NSString * const kGTLRAuthScopeVisionCloudPlatform; +/** + * Authorization scope: Apply machine learning models to understand and label + * images + * + * Value "https://www.googleapis.com/auth/cloud-vision" + */ +GTLR_EXTERN NSString * const kGTLRAuthScopeVisionCloudVision; + +// ---------------------------------------------------------------------------- +// GTLRVisionService +// + +/** + * Service for executing Cloud Vision API queries. + * + * Integrates Google Vision features, including image labeling, face, logo, and + * landmark detection, optical character recognition (OCR), and detection of + * explicit content, into applications. + */ +@interface GTLRVisionService : GTLRService + +// No new methods + +// Clients should create a standard query with any of the class methods in +// GTLRVisionQuery.h. The query can the be sent with GTLRService's execute +// methods, +// +// - (GTLRServiceTicket *)executeQuery:(GTLRQuery *)query +// completionHandler:(void (^)(GTLRServiceTicket *ticket, +// id object, NSError *error))handler; +// or +// - (GTLRServiceTicket *)executeQuery:(GTLRQuery *)query +// delegate:(id)delegate +// didFinishSelector:(SEL)finishedSelector; +// +// where finishedSelector has a signature of: +// +// - (void)serviceTicket:(GTLRServiceTicket *)ticket +// finishedWithObject:(id)object +// error:(NSError *)error; +// +// The object passed to the completion handler or delegate method +// is a subclass of GTLRObject, determined by the query method executed. + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Modules/module.modulemap new file mode 100644 index 000000000..1a2c71a29 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleAPIClientForREST.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +framework module GoogleAPIClientForREST { +umbrella header "GoogleAPIClientForREST.h" +export * +module * { export * } +} diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/GoogleMobileVision b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/GoogleMobileVision Binary files differnew file mode 100755 index 000000000..bd9cb9126 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/GoogleMobileVision diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetector.h b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetector.h new file mode 100755 index 000000000..eb58a4138 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetector.h @@ -0,0 +1,42 @@ +#import <AVFoundation/AVFoundation.h> + +#import "GMVFeature.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A GMVDetector object uses image processing to search for and identify notable features in a + * still image or video. Detected features are represented by GMVFeature objects that provide more + * information about each feature. + */ +@interface GMVDetector : NSObject + +/** + * Creates and returns a configured detector. + * @param type Identifies which type of detector should be created. + * @param options Configuration options for the detector. + * @return The |type| detector. The detector maybe nil if initialization failed. + */ ++ (nullable GMVDetector *)detectorOfType:(NSString *)type options:(nullable NSDictionary *)options; + +/** + * Searches for features in an image. + * @param options Configuration options for runtime detection. Use the GMVDetectorImageOrientation + * key to specify the image orientation. + * @return The array of detected features, or nil if an error occurred. + */ +- (nullable NSArray<__kindof GMVFeature *> *)featuresInImage:(UIImage *)image + options:(nullable NSDictionary *)options; + +/** + * Searches for features in an image buffer. + * @param options Configuration options for runtime detection. Use the GMVDetectorImageOrientation + * key to specify the image orientation. + * @return The array of detected features, or nil if an error occurred. + */ +- (nullable NSArray<__kindof GMVFeature *> *)featuresInBuffer:(CMSampleBufferRef)sampleBuffer + options:(nullable NSDictionary *)options; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetectorConstants.h b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetectorConstants.h new file mode 100755 index 000000000..472fef231 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVDetectorConstants.h @@ -0,0 +1,461 @@ +#ifndef GMVDetector_GMVDetectorConstants_h +#define GMVDetector_GMVDetectorConstants_h + +#import <Foundation/Foundation.h> + +/** @file GMVDetectorConstants.h + * Detector constants. + */ + +/** Possible error codes returned by GMVDetector. */ +typedef NS_ENUM(NSInteger, GMVDetectorError) { + GMVDetectorInvalidInput = -301 +}; + +/** + * @enum GMVImageOrientation + * This enumeration specifies where the origin (0,0) of the image is located. The constant + * has the same value as defined by EXIF specifications. + */ +typedef NS_ENUM(NSInteger, GMVImageOrientation) { + /** + * Orientation code indicating the 0th row is the top and the 0th column is the left side. + */ + GMVImageOrientationTopLeft = 1, + /** + * Orientation code indicating the 0th row is the top and the 0th column is the right side. + */ + GMVImageOrientationTopRight = 2, + /** + * Orientation code indicating the 0th row is the bottom and the 0th column is the right side. + */ + GMVImageOrientationBottomRight = 3, + /** + * Orientation code indicating the 0th row is the bottom and the 0th column is the left side. + */ + GMVImageOrientationBottomLeft = 4, + /** + * Orientation code indicating the 0th row is the left side and the 0th column is the top. + */ + GMVImageOrientationLeftTop = 5, + /** + * Orientation code indicating the 0th row is the right side and the 0th column is the top. + */ + GMVImageOrientationRightTop = 6, + /** + * Orientation code indicating the 0th row is the right side and the 0th column is the bottom. + */ + GMVImageOrientationRightBottom = 7, + /** + * Orientation code indicating the 0th row is the left side and the 0th column is the + * bottom. + */ + GMVImageOrientationLeftBottom = 8 +}; + +/** + * @enum GMVDetectorFaceModeOption + * This enum specifies a preference for accuracy vs. speed trade-offs. + */ +typedef NS_ENUM(NSInteger, GMVDetectorFaceModeOption) { + /** + * Face detection mode code indicating detect fewer faces and may be less precise in determining + * values such as position, but will run faster. + */ + GMVDetectorFaceFastMode = 200, + /** + * Face detection mode code indicating detect more faces and may be more precise in determining + * values such as position, at the cost of speed. + */ + GMVDetectorFaceAccurateMode = 201, + /** + * Face detection mode code indicating detect predominant faces appeared in self-photography + * style and may be not detecting smaller and further away faces. + */ + GMVDetectorFaceSelfieMode = 202 +}; + +/** + * @options GMVDetectorFaceLandmark + * This option specifies the landmark detection type. + */ +typedef NS_OPTIONS(NSInteger, GMVDetectorFaceLandmark) { + /** + * Face landmark option indicating it performs no landmark detection. + */ + GMVDetectorFaceLandmarkNone = 1 << 0, + /** + * Face landmark option indicating it performs all landmark detection. + */ + GMVDetectorFaceLandmarkAll = 1 << 1, + /** + * Face landmark option indicating it performs contour detection. + */ + GMVDetectorFaceLandmarkContour = 1 << 2 +}; + +/** + * @options GMVDetectorFaceClassification + * This option specifies the classification type. + */ +typedef NS_OPTIONS(NSInteger, GMVDetectorFaceClassification) { + /** + * Face classification option indicating it performs no classification. + */ + GMVDetectorFaceClassificationNone = 1 << 0, + /** + * Face classification option indicating it performs all classification. + */ + GMVDetectorFaceClassificationAll = 1 << 1 +}; + +/** This value is the default score threshold set on label detectors. */ +extern const float kGMVDetectorLabelScoreThresholdDefaultValue; + +/** + * @enum GMVBarcodeFeatureEmailType + * This enum specifies the email type for GMVBarcodeFeatureEmail. + */ +typedef NS_ENUM(NSInteger, GMVBarcodeFeatureEmailType) { + /** + * Unknown email type. + */ + GMVBarcodeFeatureEmailTypeUnknown = 0, + /** + * Barcode feature work email type. + */ + GMVBarcodeFeatureEmailTypeWork = 1, + /** + * Barcode feature home email type. + */ + GMVBarcodeFeatureEmailTypeHome = 2 +}; + +/** + * @enum GMVBarcodeFeaturePhoneType + * This enum specifies the phone type for GMVBarcodeFeaturePhone. + */ +typedef NS_ENUM(NSInteger, GMVBarcodeFeaturePhoneType) { + /** + * Unknown phone type. + */ + GMVBarcodeFeaturePhoneTypeUnknown = 0, + /** + * Barcode feature work phone type. + */ + GMVBarcodeFeaturePhoneTypeWork = 1, + /** + * Barcode feature home phone type. + */ + GMVBarcodeFeaturePhoneTypeHome = 2, + /** + * Barcode feature fax phone type. + */ + GMVBarcodeFeaturePhoneTypeFax = 3, + /** + * Barcode feature mobile phone type. + */ + GMVBarcodeFeaturePhoneTypeMobile = 4 +}; + +/** + * @enum GMVBarcodeFeatureWiFiEncryptionType + * This enum specifies the Wi-Fi encryption type for GMVBarcodeFeatureWiFi. + */ +typedef NS_ENUM(NSInteger, GMVBarcodeFeatureWiFiEncryptionType) { + /** + * Barcode feature unknown Wi-Fi encryption type. + */ + GMVBarcodeFeatureWiFiEncryptionTypeUnknown = 0, + /** + * Barcode feature open Wi-Fi encryption type. + */ + GMVBarcodeFeatureWiFiEncryptionTypeOpen = 1, + /** + * Barcode feature WPA Wi-Fi encryption type. + */ + GMVBarcodeFeatureWiFiEncryptionTypeWPA = 2, + /** + * Barcode feature WEP Wi-Fi encryption type. + */ + GMVBarcodeFeatureWiFiEncryptionTypeWEP = 3 +}; + +/** + * @enum GMVBarcodeFeatureAddressType + * This enum specifies address type. + */ +typedef NS_ENUM(NSInteger, GMVBarcodeFeatureAddressType) { + /** + * Barcode feature unknown address type. + */ + GMVBarcodeFeatureAddressTypeUnknown = 0, + /** + * Barcode feature work address type. + */ + GMVBarcodeFeatureAddressTypeWork = 1, + /** + * Barcode feature home address type. + */ + GMVBarcodeFeatureAddressTypeHome = 2 +}; + +/** + * @enum GMVDetectorBarcodeValueFormat + * This enum specifies a barcode's value format. For example, TEXT, PRODUCT, URL, etc. + */ +typedef NS_ENUM(NSInteger, GMVDetectorBarcodeValueFormat) { + /** + * Barcode value format for contact info. + */ + GMVDetectorBarcodeValueFormatContactInfo = 1, + /** + * Barcode value format for email addresses. + */ + GMVDetectorBarcodeValueFormatEmail = 2, + /** + * Barcode value format for ISBNs. + */ + GMVDetectorBarcodeValueFormatISBN = 3, + /** + * Barcode value format for phone numbers. + */ + GMVDetectorBarcodeValueFormatPhone = 4, + /** + * Barcode value format for product codes. + */ + GMVDetectorBarcodeValueFormatProduct = 5, + /** + * Barcode value format for SMS details. + */ + GMVDetectorBarcodeValueFormatSMS = 6, + /** + * Barcode value format for plain text. + */ + GMVDetectorBarcodeValueFormatText = 7, + /** + * Barcode value format for URLs/bookmarks. + */ + GMVDetectorBarcodeValueFormatURL = 8, + /** + * Barcode value format for Wi-Fi access point details. + */ + GMVDetectorBarcodeValueFormatWiFi = 9, + /** + * Barcode value format for geographic coordinates. + */ + GMVDetectorBarcodeValueFormatGeographicCoordinates = 10, + /** + * Barcode value format for calendar events. + */ + GMVDetectorBarcodeValueFormatCalendarEvent = 11, + /** + * Barcode value format for driver's license data. + */ + GMVDetectorBarcodeValueFormatDriversLicense = 12 +}; + +/** + * @options GMVDetectorBarcodeFormat + * This option specifies the barcode formats that the library should detect. + */ +typedef NS_OPTIONS(NSInteger, GMVDetectorBarcodeFormat) { + /** + * Code-128 detection. + */ + GMVDetectorBarcodeFormatCode128 = 0x0001, + /** + * Code-39 detection. + */ + GMVDetectorBarcodeFormatCode39 = 0x0002, + /** + * Code-93 detection. + */ + GMVDetectorBarcodeFormatCode93 = 0x0004, + /** + * Codabar detection. + */ + GMVDetectorBarcodeFormatCodaBar = 0x0008, + /** + * Data Matrix detection. + */ + GMVDetectorBarcodeFormatDataMatrix = 0x0010, + /** + * EAN-13 detection. + */ + GMVDetectorBarcodeFormatEAN13 = 0x0020, + /** + * EAN-8 detection. + */ + GMVDetectorBarcodeFormatEAN8 = 0x0040, + /** + * ITF detection. + */ + GMVDetectorBarcodeFormatITF = 0x0080, + /** + * QR Code detection. + */ + GMVDetectorBarcodeFormatQRCode = 0x0100, + /** + * UPC-A detection. + */ + GMVDetectorBarcodeFormatUPCA = 0x0200, + /** + * UPC-E detection. + */ + GMVDetectorBarcodeFormatUPCE = 0x0400, + /** + * PDF-417 detection. + */ + GMVDetectorBarcodeFormatPDF417 = 0x0800, + /** + * Aztec code detection. + */ + GMVDetectorBarcodeFormatAztec = 0x1000 +}; + +#pragma mark - Detector type constants + +/** + * @memberof GMVDetector + * A detector that searches for faces in a still image or video, returning GMVFaceFeature + * objects that provide information about detected faces. + */ +extern NSString * const GMVDetectorTypeFace; + +/** + * @memberof GMVDetector + * A detector that searches for barcodes in a still image or video, returning GMVBarcodeFeature + * objects that provide information about detected barcodes. + */ +extern NSString * const GMVDetectorTypeBarcode; + +/** + * @memberof GMVDetector + * A detector that does optical character recognition in a still image or video, returning + * GMVTextBlockFeature objects that provide information about detected text. + */ +extern NSString * const GMVDetectorTypeText; + +/** + * @memberof GMVDetector + * A detector that classifies a still image, returning GMVLabelFeature objects that provide + * information about detected labels. + */ +extern NSString * const GMVDetectorTypeLabel; + +#pragma mark - Label Detector Configuration Keys + +/** + * @memberof GMVDetector + * A key used to specify the score threshold for labels returned by the label detector, a float + * value between 0 and 1. + * + * All features returned by the label detector have a score higher or equal to this threshold. + * If unset, a default value of kGMVDetectorLabelScoreThresholdDefaultValue is used. + */ +extern NSString * const GMVDetectorLabelScoreThreshold; + +#pragma mark - Barcode Detector Configuration Keys + +/** + * @memberof GMVDetector + * A key used to specify the barcode detection formats. If not specified, defaults to + * GMVDetectorBarcodeFormatAllFormats. + */ +extern NSString * const GMVDetectorBarcodeFormats; + +#pragma mark - Face Detector Configuration Keys + +/** + * @memberof GMVDetector + * A key used to specify detector's accuracy/speed trade-offs. If not specified, defaults to + * GMVDetectorFaceFastMode. + */ +extern NSString * const GMVDetectorFaceMode; + +/** + * @memberof GMVDetector + * A key used to specify is face tracking feature enabled. If not specified, defaults to false. + */ +extern NSString * const GMVDetectorFaceTrackingEnabled; + +/** + * @memberof GMVDetector + * A key used to specify the smallest desired face size. The size is expressed as a proportion + * of the width of the head to the image width. For example, if a value of 0.1 is specified, then + * the smallest face to search for is roughly 10% of the width of the image being searched. + * If not specified, defaults to 0.1. + */ +extern NSString * const GMVDetectorFaceMinSize; + +/** + * @memberof GMVDetector + * A key used to specify whether to run additional classifiers for characterizing attributes + * such as smiling. If not specified, defaults to GMVDetectorFaceClassificationNone. + */ +extern NSString * const GMVDetectorFaceClassificationType; + +/** + * @memberof GMVDetector + * A key used to specify whether to detect no landmarks or all landmarks. Processing time + * increases as the number of landmarks to search for increases, so detecting all landmarks + * will increase the overall detection time. If not specified, defaults to + * GMVDetectorFaceLandmarkNone. + */ +extern NSString * const GMVDetectorFaceLandmarkType; + +#pragma mark - Detector Detection Configuration Keys + +/** + * @memberof GMVDetector + * A key used to specify the display orientation of the image for face feature detection. The + * value of this key is an NSNumber wrapping a GMVImageOrientation. + */ +extern NSString * const GMVDetectorImageOrientation; + +#pragma mark - Feature Types + +/** + * @memberof GMVFeature + * The discovered feature is a person’s face. Use the GMVFaceFeature class to get more + * information about the detected feature. + */ +extern NSString * const GMVFeatureTypeFace; + +/** + * @memberof GMVFeature + * The discovered feature is a barcode. Use the GMVBarcodeFeature class to get more + * information about the detected feature. + */ +extern NSString * const GMVFeatureTypeBarcode; + +/** + * @memberof GMVFeature + * The discovered feature is a text block. Use the GMVTextBlockFeature class to get more + * information about the detected feature. + */ +extern NSString * const GMVFeatureTypeTextBlock; + +/** + * @memberof GMVFeature + * The discovered feature is a text line. Use the GMVTextLineFeature class to get more + * information about the detected feature. + */ +extern NSString * const GMVFeatureTypeTextLine; + +/** + * @memberof GMVFeature + * The discovered feature is a text element. Use the GMVTextElementFeature class to get more + * information about the detected feature. + */ +extern NSString * const GMVFeatureTypeTextElement; + +/** + * @memberof GMVFeature + * The discovered feature is a label. Use the GMVLabelFeature class to get more information about + * the detected feature. + */ +extern NSString * const GMVFeatureTypeLabel; + +#endif // GMVDetector_GMVDetectorConstants_h diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVFeature.h b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVFeature.h new file mode 100755 index 000000000..4d01b33f1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVFeature.h @@ -0,0 +1,874 @@ +#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> + +#import "GMVDetectorConstants.h" + +/** + * Generic feature returned by a GMVDetector. + */ +@interface GMVFeature : NSObject + +/** + * The rectangle that holds the discovered feature relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGRect bounds; + +/** + * The type of feature that was discovered. + */ +@property(atomic, copy, readonly) NSString *type; + +/** + * Indicates whether the object has a tracking ID. + */ +@property(atomic, assign, readonly) BOOL hasTrackingID; + +/** + * The tracking identifier of the feature. This ID is not associated with a specific feature + * but identifies the same feature among consecutive video frames. + */ +@property(atomic, assign, readonly) NSUInteger trackingID; + +@end + +/** + * An email message from a 'MAILTO:' or similar QR Code type. + */ +@interface GMVBarcodeFeatureEmail : NSObject +/** + * Email message address. + */ +@property(atomic, copy, readonly) NSString *address; + +/** + * Email message body. + */ +@property(atomic, copy, readonly) NSString *body; + +/** + * Email message subject. + */ +@property(atomic, copy, readonly) NSString *subject; + +/** + * Email message type. + */ +@property(atomic, assign, readonly) GMVBarcodeFeatureEmailType type; + +@end + +/** + * A phone number from a 'TEL:' or similar QR Code type. + */ +@interface GMVBarcodeFeaturePhone : NSObject + +/** + * Phone number. + */ +@property(atomic, copy, readonly) NSString *number; + +/** + * Phone number type. + */ +@property(atomic, assign, readonly) GMVBarcodeFeaturePhoneType type; + +@end + +/** + * An SMS message from an 'SMS:' or similar QR Code type. + */ +@interface GMVBarcodeFeatureSMS : NSObject + +/** + * An SMS message body. + */ +@property(atomic, copy, readonly) NSString *message; + +/** + * An SMS message phone number. + */ +@property(atomic, copy, readonly) NSString *phoneNumber; + +@end + +/** + * A URL and title from a 'MEBKM:' or similar QR Code type. + */ +@interface GMVBarcodeFeatureURLBookmark : NSObject + +/** + * A URL bookmark title. + */ +@property(atomic, copy, readonly) NSString *title; + +/** + * A URL bookmark url. + */ +@property(atomic, copy, readonly) NSString *url; + +@end + +/** + * Wi-Fi network parameters from a 'WIFI:' or similar QR Code type. + */ +@interface GMVBarcodeFeatureWiFi : NSObject + +/** + * A Wi-Fi access point SSID. + */ +@property(atomic, copy, readonly) NSString *ssid; + +/** + * A Wi-Fi access point password. + */ +@property(atomic, copy, readonly) NSString *password; + +/** + * A Wi-Fi access point encryption type. + */ +@property(atomic, assign, readonly) GMVBarcodeFeatureWiFiEncryptionType type; + +@end + +/** + * GPS coordinates from a 'GEO:' or similar QR Code type data. + */ +@interface GMVBarcodeFeatureGeoPoint : NSObject +/** + * A location latitude. + */ +@property(atomic, assign, readonly) double latitude; + +/** + * A location longitude. + */ +@property(atomic, assign, readonly) double longitude; + +@end + +/** + * An address. + */ +@interface GMVBarcodeFeatureAddress : NSObject + +/** + * Formatted address, containing multiple lines when appropriate. + */ +@property(atomic, copy, readonly) NSArray<NSString *> *addressLines; + +/** + * Address type. + */ +@property(atomic, assign, readonly) GMVBarcodeFeatureAddressType type; + +@end + +/** + * A person's name, both formatted and as individual name components. + */ +@interface GMVBarcodeFeaturePersonName : NSObject + +/** + * Properly formatted name. + */ +@property(atomic, copy, readonly) NSString *formattedName; + +/** + * First name. + */ +@property(atomic, copy, readonly) NSString *first; + +/** + * Last name. + */ +@property(atomic, copy, readonly) NSString *last; + +/** + * Middle name. + */ +@property(atomic, copy, readonly) NSString *middle; + +/** + * Name prefix. + */ +@property(atomic, copy, readonly) NSString *prefix; + +/** + * Designates a text string to be set as the kana name in the phonebook. + * Used for Japanese contacts. + */ +@property(atomic, copy, readonly) NSString *pronounciation; + +/** + * Name suffix. + */ +@property(atomic, copy, readonly) NSString *suffix; + +@end + +/** + * A person's or organization's business card. For example, a vCard. + */ +@interface GMVBarcodeFeatureContactInfo : NSObject + +/** + * Person's or organization's addresses. + */ +@property(atomic, copy, readonly) NSArray<GMVBarcodeFeatureAddress *> *addresses; + +/** + * Contact emails. + */ +@property(atomic, copy, readonly) NSArray<GMVBarcodeFeatureEmail *> *emails; + +/** + * A person's name. + */ +@property(atomic, strong, readonly) GMVBarcodeFeaturePersonName *name; + +/** + * Contact phone numbers. + */ +@property(atomic, copy, readonly) NSArray<GMVBarcodeFeaturePhone *> *phones; + +/** + * Contact URLs. + */ +@property(atomic, copy, readonly) NSArray<NSString *> *urls; + +/** + * Job title. + */ +@property(atomic, copy, readonly) NSString *jobTitle; + +/** + * Business organization. + */ +@property(atomic, copy, readonly) NSString *organization; + +@end + +/** + * A calendar event extracted from a QR code. + */ +@interface GMVBarcodeFeatureCalendarEvent : NSObject + +/** + * Calendar event description. + */ +@property(atomic, copy, readonly) NSString *eventDescription; + +/** + * Calendar event location. + */ +@property(atomic, copy, readonly) NSString *location; + +/** + * Clendar event organizer. + */ +@property(atomic, copy, readonly) NSString *organizer; + +/** + * Calendar event status. + */ +@property(atomic, copy, readonly) NSString *status; + +/** + * Calendar event summary. + */ +@property(atomic, copy, readonly) NSString *summary; + +/** + * Calendar event start date. + */ +@property(atomic, strong, readonly) NSDate *start; + +/** + * Calendar event end date. + */ +@property(atomic, strong, readonly) NSDate *end; + +@end + +/** + * A driver license or ID card data representation. + */ +@interface GMVBarcodeFeatureDriverLicense : NSObject + +/** + * Holder's first name. + */ +@property(atomic, copy, readonly) NSString *firstName; + +/** + * Holder's middle name. + */ +@property(atomic, copy, readonly) NSString *middleName; + +/** + * Holder's last name. + */ +@property(atomic, copy, readonly) NSString *lastName; + +/** + * Holder's gender. 1 is male and 2 is female. + */ +@property(atomic, copy, readonly) NSString *gender; + +/** + * Holder's city address. + */ +@property(atomic, copy, readonly) NSString *addressCity; + +/** + * Holder's state address. + */ +@property(atomic, copy, readonly) NSString *addressState; + +/** + * Holder's street address. + */ +@property(atomic, copy, readonly) NSString *addressStreet; + +/** + * Holder's address' zipcode. + */ +@property(atomic, copy, readonly) NSString *addressZip; + +/** + * Holder's birthday. The date format depends on the issuing country. + */ +@property(atomic, copy, readonly) NSString *birthDate; + +/** + * "DL" for driver licenses, "ID" for ID cards. + */ +@property(atomic, copy, readonly) NSString *documentType; + +/** + * Driver license ID number. + */ +@property(atomic, copy, readonly) NSString *licenseNumber; + +/** + * Driver license expiration date. The date format depends on the issuing country. + */ +@property(atomic, copy, readonly) NSString *expiryDate; + +/** + * The date format depends on the issuing country. + */ +@property(atomic, copy, readonly) NSString *issuingDate; + +/** + * Country in which DL/ID was issued. + */ +@property(atomic, copy, readonly) NSString *issuingCountry; + +@end + +/** + * Describes a barcode detected in a still image frame. Its properties provide barcode value + * information. + */ +@interface GMVBarcodeFeature : GMVFeature + +/** + * Barcode value as it was encoded in the barcode. Structured values are not parsed, for example: + * 'MEBKM:TITLE:Google;URL:https://www.google.com;;'. Does not include the supplemental value. + */ +@property(atomic, copy, readonly) NSString *rawValue; + +/** + * Barcode value in a user-friendly format. May omit some of the information encoded in the + * barcode. For example, in the case above the display_value might be 'https://www.google.com'. + * If valueFormat==TEXT, this field will be equal to rawValue. This value may be multiline, + * for example, when line breaks are encoded into the original TEXT barcode value. May include + * the supplement value. + */ +@property(atomic, copy, readonly) NSString *displayValue; + +/** + * Barcode format; for example, EAN_13. Note that this field may contain values not present in the + * current set of format constants. When mapping this value to something else, it is advisable + * to have a default/fallback case. + */ +@property(atomic, assign, readonly) GMVDetectorBarcodeFormat format; + +/** + * The four corner points of the barcode, in clockwise order starting with the top left relative + * to the detected image in the view coordinate system. These are CGPoints boxed in NSValues. + * Due to the possible perspective distortions, this is not necessarily a rectangle. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *cornerPoints; + +/** + * Format of the barcode value. For example, TEXT, PRODUCT, URL, etc. Note that this field may + * contain values not present in the current set of value format constants. When mapping this + * value to something else, it is advisable to have a default/fallback case. + */ +@property(atomic, assign, readonly) GMVDetectorBarcodeValueFormat valueFormat; + +/** + * An email message from a 'MAILTO:' or similar QR Code type. This properly is only set if + * valueFormat is GMVDetectorBarcodeValueFormatEmail. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureEmail *email; + +/** + * A phone number from a 'TEL:' or similar QR Code type. This property is only set if valueFormat + * is GMVDetectorBarcodeValueFormatPhone. + */ +@property(atomic, strong, readonly) GMVBarcodeFeaturePhone *phone; + +/** + * An SMS message from an 'SMS:' or similar QR Code type. This property is only set if valueFormat + * is GMVDetectorBarcodeValueFormatSMS. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureSMS *sms; + +/** + * A URL and title from a 'MEBKM:' or similar QR Code type. This property is only set iff + * valueFormat is GMVDetectorBarcodeValueFormatURL. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureURLBookmark *url; + +/** + * Wi-Fi network parameters from a 'WIFI:' or similar QR Code type. This property is only set + * iff valueFormat is GMVDetectorBarcodeValueFormatWifi. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureWiFi *wifi; + +/** + * GPS coordinates from a 'GEO:' or similar QR Code type. This property is only set iff valueFormat + * is GMVDetectorBarcodeValueFormatGeo + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureGeoPoint *geoPoint; + +/** + * A person's or organization's business card. For example a VCARD. This property is only set + * iff valueFormat is GMVDetectorBarcodeValueFormatContactInfo. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureContactInfo *contactInfo; + +/** + * A calendar event extracted from a QR Code. This property is only set iff valueFormat is + * GMVDetectorBarcodeValueFormatCalendarEvent. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureCalendarEvent *calendarEvent; + +/** + * A driver license or ID card. This property is only set iff valueFormat is + * GMVDetectorBarcodeValueFormatDriverLicense. + */ +@property(atomic, strong, readonly) GMVBarcodeFeatureDriverLicense *driverLicense; + +@end + +/** + * Describes a single element in a line of detected text. An "element" is roughly equivalent to a + * space-separated "word" in most Latin-script languages. + */ +@interface GMVTextElementFeature : GMVFeature + +/** + * Text contained in this element, in string form. + */ +@property(atomic, copy, readonly) NSString *value; + +/** + * The four corner points of the text line, in clockwise order starting with the top left relative + * to the detected image in the view coordinate system. These are CGPoints boxed in NSValues. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *cornerPoints; + +@end + +/** + * Describes a single line of detected text. + */ +@interface GMVTextLineFeature : GMVFeature + +/** + * Text contained in this text line, in string form. + */ +@property(atomic, copy, readonly) NSString *value; + +/** + * The prevailing language in the text line. The format is the ISO 639-1 two-letter language code if + * that is defined (e.g. "en"), or else the ISO 639-2 three-letter code if that is defined. + */ +@property(atomic, copy, readonly) NSString *language; + +/** + * The four corner points of the text line, in clockwise order starting with the top left relative + * to the detected image in the view coordinate system. These are CGPoints boxed in NSValues. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *cornerPoints; + +/** + * Text elements in this line. + */ +@property(atomic, copy, readonly) NSArray<GMVTextElementFeature *> *elements; + +@end + +/** + * Describes a text block detected in a still image frame. Its properties provide details + * about detected text. + */ +@interface GMVTextBlockFeature : GMVFeature + +/** + * Text contained in the text block, in string form. + */ +@property(atomic, copy, readonly) NSString *value; + +/** + * The prevailing language in the text block. The format is the ISO 639-1 two-letter language code + * if that is defined (e.g. "en"), or else the ISO 639-2 three-letter code if that is defined. + */ +@property(atomic, copy, readonly) NSString *language; + +/** + * The four corner points of the text block, in clockwise order starting with the top left relative + * to the detected image in the view coordinate system. These are CGPoints boxed in NSValues. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *cornerPoints; + +/** + * The contents of the text block, broken down into individual lines. + */ +@property(atomic, copy, readonly) NSArray<GMVTextLineFeature *> *lines; + +@end + +/** + * Describes facial contours in a still image frame. A facial contour is a set of points that + * outlines a facial landmark or region. + */ +@interface GMVFaceContour : NSObject + +/** + * All contour points. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *allPoints; +/** + * A set of points outlines the face oval, relative to the detected image in the view coordinate + * system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *faceContour; +/** + * A set of points outlines the top of the left eyebrow, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *topLeftEyebrowContour; +/** + * A set of points outlines the bottom of the left eyebrow, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *bottomLeftEyebrowContour; +/** + * A set of points outlines the top of the right eyebrow, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *topRightEyebrowContour; +/** + * A set of points outlines the bottom of the right eyebrow, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *bottomRightEyebrowContour; +/** + * A set of points outlines the left eye, relative to the detected image in the view coordinate + * system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *leftEyeContour; +/** + * A set of points outlines the right eye, relative to the detected image in the view coordinate + * system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *rightEyeContour; +/** + * A set of points outlines the top of the upper lip, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *topUpperLipContour; +/** + * A set of points outlines the bottom of the upper lip, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *bottomUpperLipContour; +/** + * A set of points outlines the top of the lower lip, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *topLowerLipContour; +/** + * A set of points outlines the bottom of the lower lip, relative to the detected image in the + * view coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *bottomLowerLipContour; +/** + * A set of points outlines the nose bridge, relative to the detected image in the view coordinate + * system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *noseBridgeContour; +/** + * A set of points outlines the bottom of the nose, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, copy, readonly) NSArray<NSValue *> *bottomNoseContour; + +@end + +/** + * Describes a face detected in a still image frame. Its properties provide face + * landmark information. + */ +@interface GMVFaceFeature : GMVFeature + +#pragma mark - Head properties + +/** + * Indicates whether the detector found the head y euler angle. + */ +@property(atomic, assign, readonly) BOOL hasHeadEulerAngleY; + +/** + * Indicates the rotation of the face about the vertical axis of the image. + * Positive euler y is when the face is turned towards the right side of the image that is being + * processed. + */ +@property(atomic, assign, readonly) CGFloat headEulerAngleY; + +/** + * Indicates whether the detector found the head z euler angle. + */ +@property(atomic, assign, readonly) BOOL hasHeadEulerAngleZ; + +/** + * Indicates the rotation of the face about the axis pointing out of the image. + * Positive euler z is a counter-clockwise rotation within the image plane. + */ +@property(atomic, assign, readonly) CGFloat headEulerAngleZ; + +/** + * Indicates the rotation of the face about the horizontal axis. + * Positive euler x is the rotation when the face looks up. + */ +@property(atomic, assign, readonly) CGFloat headEulerAngleX; + +/** + * Indicates whether the detector found the head x euler angle. + */ +@property(atomic, assign, readonly) BOOL hasHeadEulerAngleX; + +#pragma mark - Mouth properties + +/** + * Indicates whether the detector found the face’s mouth corner where the + * lips meet. + */ +@property(atomic, assign, readonly) BOOL hasMouthPosition; + +/** + * The coordinates of the mouth corner where the lips meet, relative to the detected image in + * the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint mouthPosition; + +/** + * Indicates whether the detector found the face's bottom lip center. + */ +@property(atomic, assign, readonly) BOOL hasBottomMouthPosition; + +/** + * The coordinates of the bottom lip center, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGPoint bottomMouthPosition; + +/** + * Indicates whether the detector found the face's right mouth corner. + */ +@property(atomic, assign, readonly) BOOL hasRightMouthPosition; + +/** + * The coordinates of the right mouth corner, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGPoint rightMouthPosition; + +/** + * Indicates whether the detector found the face's left mouth corner. + */ +@property(atomic, assign, readonly) BOOL hasLeftMouthPosition; + +/** + * The coordinates of the left mouth corner, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGPoint leftMouthPosition; + +#pragma mark - Ear properties + +/** + * Indicates whether the detector found the midpoint of the face's left + * ear tip and left ear lobe. + */ +@property(atomic, assign, readonly) BOOL hasLeftEarPosition; + +/** + * The coordinates of the midpoint between the face's midpoint of the left ear tip and left ear + * lobe, relative to the detected image in the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint leftEarPosition; + +/** + * Indicates whether the detector found the face's left ear tip. Treating the + * top of the face's left ear as a circle, this is the point at 45 degrees around the circle in + * Cartesian coordinates. + */ +@property(atomic, assign, readonly) BOOL hasRightEarPosition; + +/** + * The coordinates of the midpoint between the face's midpoint of the right ear tip and right ear + * lobe, relative to the detected image in the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint rightEarPosition; + +#pragma mark - Eye properties + +/** + * Indicates whether the detector found the face’s left eye. + */ +@property(atomic, assign, readonly) BOOL hasLeftEyePosition; + +/** + * The coordinates of the left eye, relative to the detected image in the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint leftEyePosition; + +/** + * Indicates whether the detector found the face’s right eye. + */ +@property(atomic, assign, readonly) BOOL hasRightEyePosition; + +/** + * The coordinates of the right eye, relative to the detected image in the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint rightEyePosition; + +#pragma mark - Cheek properties + +/** + * Indicates whether the detector found the face's left cheek. + */ +@property(atomic, assign, readonly) BOOL hasLeftCheekPosition; + +/** + * The coordinates of the left cheek, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGPoint leftCheekPosition; + +/** + * Indicates whether the detector found the face's right cheek. + */ +@property(atomic, assign, readonly) BOOL hasRightCheekPosition; + +/** + * The coordinates of the right cheek, relative to the detected image in the view + * coordinate system. + */ +@property(atomic, assign, readonly) CGPoint rightCheekPosition; + +#pragma mark - Nose properties + +/** + * Indicates whether the detector found the midpoint between the face's + * nostrils where the nose meets the face. + */ +@property(atomic, assign, readonly) BOOL hasNoseBasePosition; + +/** + * The coordinates of the midpoint between the nostrils, relative to the detected image in + * the view coordinate system. + */ +@property(atomic, assign, readonly) CGPoint noseBasePosition; + +#pragma mark - Classifier properties + +/** + * Indicates whether a smiling probability is available. + */ +@property(atomic, assign, readonly) BOOL hasSmilingProbability; + +/** + * A value between 0.0 and 1.0 giving a probability that the face is smiling. + **/ +@property(atomic, assign, readonly) CGFloat smilingProbability; + +/** + * Indicates whether a left eye open probability is available. + */ +@property(atomic, assign, readonly) BOOL hasLeftEyeOpenProbability; + +/** + * A value between 0.0 and 1.0 giving a probability that the face's left eye is open. + */ +@property(atomic, assign, readonly) CGFloat leftEyeOpenProbability; + +/** + * Indicates whether a right eye open probability is available. + */ +@property(atomic, assign, readonly) BOOL hasRightEyeOpenProbability; + +/** + * A value between 0.0 and 1.0 giving a probability that the face's right eye is open. + */ +@property(atomic, assign, readonly) CGFloat rightEyeOpenProbability; + +/** + * Describes a set of points that outlines a facial landmark. + */ +@property(atomic, copy, readonly) GMVFaceContour *contour; + + +@end + +/** + * Describes a label detected in a still image frame. Its properties provide details about the + * label. + */ +@interface GMVLabelFeature : GMVFeature + +/** + * Machine-generated identifier (thus MID) corresponding to the entity's Google Knowledge Graph + * entry. For example: "/m/01j51". + * + * Note the globally unique MID values remain unchanged across different languages, so you + * can use this value to tie entities together from different languages. To inspect the MID + * value, refer to the Google Knowledge Graph API documentation. + * https://developers.google.com/knowledge-graph/reference/rest/v1/ + */ +@property(atomic, copy, readonly) NSString *MID; + +/** + * Description of the label, i.e. human readable string in American English. For example: "Balloon". + * + * Note: this is not fit for display purposes, as it is not localized. Use the MID and query the + * Knowledge Graph to get a localized description of the label. + */ +@property(atomic, copy, readonly) NSString *labelDescription; + +/** + * Confidence score for the label (between 0 and 1). + * + * Features coming from a label detector all have scores higher or equal to the detector's + * configured threshold. + */ +@property(atomic, assign, readonly) float score; + +@end diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVUtility.h b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVUtility.h new file mode 100755 index 000000000..883a5e0f2 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GMVUtility.h @@ -0,0 +1,58 @@ +#import <AVFoundation/AVFoundation.h> +#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> + +#import "GMVDetectorConstants.h" + +@interface GMVUtility : NSObject + +/** + * Converts CMSampleBuffer to UIImage. This function supports 420v, 420f, and BGRA + * CVPixelBufferPixelFormatTypes. + * + * @param sampleBuffer The buffer to convert to UIImage. + * @returns UIImage in RGBA8888 format. + */ ++ (UIImage *)sampleBufferTo32RGBA:(CMSampleBufferRef)sampleBuffer; + +/** + * Converts CMSampleBuffer to RGBA8888 data format. This function supports 420v, 420f, and BGRA + * CVPixelBufferPixelFormatTypes. The output data corresponds to an image with exact same width + * and height than input |sampleBuffer|. The number of bytes in a pixel row corresponds to the + * returned NSData's length divided by height. + * + * @param sampleBuffer The buffer to convert to NSData. + * @returns NSData in RGBA8888 format. + */ ++ (NSData *)anySampleBufferFormatTo32RGBA:(CMSampleBufferRef)sampleBuffer; + +/** + * This function determines the image exif metadata using device orientation and device + * position. The orientation is significant when using detections on an image generated + * from AVCaptureVideoDataOutput CMSampleBuffer. AVCaptureVideoDataOutput does not support + * setting the video orientation, therefore the client has to handle the rotation on their own. + * GMVImageOrientation can be passed in to GMVDetector featuresInImage:options: to let the + * detector handle the video rotation for you. + * + * @param deviceOrientation The device orientation. + * @param position The caputre device position. + * @param defaultOrientation The default device orientation to use when |deviceOrientaiton| has + * value as UIDeviceOrientationFaceUp or UIDeviceOrientationFaceDown. + * @returns GMVImageOrientation value to express an image exif metadata. + */ ++ (GMVImageOrientation)imageOrientationFromOrientation:(UIDeviceOrientation)deviceOrientation + withCaptureDevicePosition:(AVCaptureDevicePosition)position + defaultDeviceOrientation:(UIDeviceOrientation)defaultOrientation; + +/** + * Converts a RGBA buffer to an UIImage. The number of bytes in a pixel row is inferred from + * |data|'s length divided by |height|. + * + * @param data The RGBA buffer. + * @param width The width of the buffer. + * @param height The height of the height of the buffer. + * @returns An UIImage instance constructed from |data|. + */ ++ (UIImage *)imageFromData:(NSData *)data width:(size_t)width height:(size_t)height; + +@end diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GoogleMobileVision.h b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GoogleMobileVision.h new file mode 100755 index 000000000..9aae0f6d0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Headers/GoogleMobileVision.h @@ -0,0 +1,4 @@ +#import "GMVDetector.h" +#import "GMVDetectorConstants.h" +#import "GMVFeature.h" +#import "GMVUtility.h" diff --git a/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Modules/module.modulemap new file mode 100755 index 000000000..a566aa41d --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleMobileVision.framework/Modules/module.modulemap @@ -0,0 +1,16 @@ +framework module GoogleMobileVision { + umbrella header "GoogleMobileVision.h" + export * + module * { export *} + link "sqlite3" + link "z" + link framework "AVFoundation" + link framework "AddressBook" + link framework "CoreGraphics" + link framework "CoreMedia" + link framework "CoreVideo" + link framework "Foundation" + link framework "LocalAuthentication" + link framework "QuartzCore" + link framework "Security" + link framework "UIKit"} diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/GoogleToolboxForMac b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/GoogleToolboxForMac Binary files differnew file mode 100644 index 000000000..c632e5c3c --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/GoogleToolboxForMac diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugSelectorValidation.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugSelectorValidation.h new file mode 100644 index 000000000..c90caeb1f --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugSelectorValidation.h @@ -0,0 +1,100 @@ +// +// GTMDebugSelectorValidation.h +// +// This file should only be included within an implimation file. In any +// function that takes an object and selector to invoke, you should call: +// +// GTMAssertSelectorNilOrImplementedWithArguments(obj, sel, @encode(arg1type), ..., NULL) +// or +// GTMAssertSelectorNilOrImplementedWithReturnTypeAndArguments(obj, sel, @encode(returnType), @encode(arg1type), ..., NULL) +// +// This will then validate that the selector is defined and using the right +// type(s), this can help catch errors much earlier then waiting for the +// selector to actually fire (and in the case of error selectors, might never +// really be tested until in the field). +// +// Copyright 2007-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#if DEBUG + +#import <stdarg.h> +#import "GTMDefines.h" + +static void GTMAssertSelectorNilOrImplementedWithReturnTypeAndArguments(id obj, SEL sel, const char *retType, ...) { + + // verify that the object's selector is implemented with the proper + // number and type of arguments + va_list argList; + va_start(argList, retType); + + if (obj && sel) { + // check that the selector is implemented + _GTMDevAssert([obj respondsToSelector:sel], + @"\"%@\" selector \"%@\" is unimplemented or misnamed", + NSStringFromClass([obj class]), + NSStringFromSelector(sel)); + + const char *expectedArgType; + NSUInteger argCount = 2; // skip self and _cmd + NSMethodSignature *sig = [obj methodSignatureForSelector:sel]; + + // check that each expected argument is present and of the correct type + while ((expectedArgType = va_arg(argList, const char*)) != 0) { + + if ([sig numberOfArguments] > argCount) { + const char *foundArgType = [sig getArgumentTypeAtIndex:argCount]; + + _GTMDevAssert(0 == strncmp(foundArgType, expectedArgType, strlen(expectedArgType)), + @"\"%@\" selector \"%@\" argument %u should be type %s", + NSStringFromClass([obj class]), + NSStringFromSelector(sel), + (uint32_t)(argCount - 2), + expectedArgType); + } + argCount++; + } + + // check that the proper number of arguments are present in the selector + _GTMDevAssert(argCount == [sig numberOfArguments], + @"\"%@\" selector \"%@\" should have %u arguments", + NSStringFromClass([obj class]), + NSStringFromSelector(sel), + (uint32_t)(argCount - 2)); + + // if asked, validate the return type + if (retType && (strcmp("gtm_skip_return_test", retType) != 0)) { + const char *foundRetType = [sig methodReturnType]; + _GTMDevAssert(0 == strncmp(foundRetType, retType, strlen(retType)), + @"\"%@\" selector \"%@\" return type should be type %s", + NSStringFromClass([obj class]), + NSStringFromSelector(sel), + retType); + } + } + + va_end(argList); +} + +#define GTMAssertSelectorNilOrImplementedWithArguments(obj, sel, ...) \ + GTMAssertSelectorNilOrImplementedWithReturnTypeAndArguments((obj), (sel), "gtm_skip_return_test", __VA_ARGS__) + +#else // DEBUG + +// make it go away if not debug +#define GTMAssertSelectorNilOrImplementedWithReturnTypeAndArguments(obj, sel, retType, ...) do { } while (0) +#define GTMAssertSelectorNilOrImplementedWithArguments(obj, sel, ...) do { } while (0) + +#endif // DEBUG diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugThreadValidation.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugThreadValidation.h new file mode 100644 index 000000000..8d116d940 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDebugThreadValidation.h @@ -0,0 +1,44 @@ +// +// GTMDebugThreadValidation.h +// +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import "GTMDefines.h" +#import <Foundation/Foundation.h> + +// GTMCheckCurrentQueue, GTMIsCurrentQueue +// +// GTMCheckCurrentQueue takes a target queue and uses _GTMDevAssert to +// report if that is not the currently executing queue. +// +// GTMIsCurrentQueue takes a target queue and returns true if the target queue +// is the currently executing dispatch queue. This can be passed to another +// assertion call in debug builds; it should never be used in release code. +// +// The dispatch queue must have a label. +#define GTMCheckCurrentQueue(targetQueue) \ + _GTMDevAssert(GTMIsCurrentQueue(targetQueue), \ + @"Current queue is %s (expected %s)", \ + _GTMQueueName(DISPATCH_CURRENT_QUEUE_LABEL), \ + _GTMQueueName(targetQueue)) + +#define GTMIsCurrentQueue(targetQueue) \ + (strcmp(_GTMQueueName(DISPATCH_CURRENT_QUEUE_LABEL), \ + _GTMQueueName(targetQueue)) == 0) + +#define _GTMQueueName(queue) \ + (strlen(dispatch_queue_get_label(queue)) > 0 ? \ + dispatch_queue_get_label(queue) : "unnamed") diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDefines.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDefines.h new file mode 100644 index 000000000..68ff8c0d0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMDefines.h @@ -0,0 +1,375 @@ +// +// GTMDefines.h +// +// Copyright 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +// ============================================================================ + +#include <AvailabilityMacros.h> +#include <TargetConditionals.h> + +#ifdef __OBJC__ +#include <Foundation/NSObjCRuntime.h> +#endif // __OBJC__ + +#if TARGET_OS_IPHONE +#include <Availability.h> +#endif // TARGET_OS_IPHONE + +// ---------------------------------------------------------------------------- +// CPP symbols that can be overridden in a prefix to control how the toolbox +// is compiled. +// ---------------------------------------------------------------------------- + + +// By setting the GTM_CONTAINERS_VALIDATION_FAILED_LOG and +// GTM_CONTAINERS_VALIDATION_FAILED_ASSERT macros you can control what happens +// when a validation fails. If you implement your own validators, you may want +// to control their internals using the same macros for consistency. +#ifndef GTM_CONTAINERS_VALIDATION_FAILED_ASSERT + #define GTM_CONTAINERS_VALIDATION_FAILED_ASSERT 0 +#endif + +// Ensure __has_feature and __has_extension are safe to use. +// See http://clang-analyzer.llvm.org/annotations.html +#ifndef __has_feature // Optional. + #define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + +#ifndef __has_extension + #define __has_extension __has_feature // Compatibility with pre-3.0 compilers. +#endif + +// Give ourselves a consistent way to do inlines. Apple's macros even use +// a few different actual definitions, so we're based off of the foundation +// one. +#if !defined(GTM_INLINE) + #if (defined (__GNUC__) && (__GNUC__ == 4)) || defined (__clang__) + #define GTM_INLINE static __inline__ __attribute__((always_inline)) + #else + #define GTM_INLINE static __inline__ + #endif +#endif + +// Give ourselves a consistent way of doing externs that links up nicely +// when mixing objc and objc++ +#if !defined (GTM_EXTERN) + #if defined __cplusplus + #define GTM_EXTERN extern "C" + #define GTM_EXTERN_C_BEGIN extern "C" { + #define GTM_EXTERN_C_END } + #else + #define GTM_EXTERN extern + #define GTM_EXTERN_C_BEGIN + #define GTM_EXTERN_C_END + #endif +#endif + +// Give ourselves a consistent way of exporting things if we have visibility +// set to hidden. +#if !defined (GTM_EXPORT) + #define GTM_EXPORT __attribute__((visibility("default"))) +#endif + +// Give ourselves a consistent way of declaring something as unused. This +// doesn't use __unused because that is only supported in gcc 4.2 and greater. +#if !defined (GTM_UNUSED) +#define GTM_UNUSED(x) ((void)(x)) +#endif + +// _GTMDevLog & _GTMDevAssert +// +// _GTMDevLog & _GTMDevAssert are meant to be a very lightweight shell for +// developer level errors. This implementation simply macros to NSLog/NSAssert. +// It is not intended to be a general logging/reporting system. +// +// Please see http://code.google.com/p/google-toolbox-for-mac/wiki/DevLogNAssert +// for a little more background on the usage of these macros. +// +// _GTMDevLog log some error/problem in debug builds +// _GTMDevAssert assert if condition isn't met w/in a method/function +// in all builds. +// +// To replace this system, just provide different macro definitions in your +// prefix header. Remember, any implementation you provide *must* be thread +// safe since this could be called by anything in what ever situtation it has +// been placed in. +// + +// Ignore the "Macro name is a reserved identifier" warning in this section +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-id-macro" + +// We only define the simple macros if nothing else has defined this. +#ifndef _GTMDevLog + +#ifdef DEBUG + #define _GTMDevLog(...) NSLog(__VA_ARGS__) +#else + #define _GTMDevLog(...) do { } while (0) +#endif + +#endif // _GTMDevLog + +#ifndef _GTMDevAssert +// we directly invoke the NSAssert handler so we can pass on the varargs +// (NSAssert doesn't have a macro we can use that takes varargs) +#if !defined(NS_BLOCK_ASSERTIONS) + #define _GTMDevAssert(condition, ...) \ + do { \ + if (!(condition)) { \ + [[NSAssertionHandler currentHandler] \ + handleFailureInFunction:(NSString *) \ + [NSString stringWithUTF8String:__PRETTY_FUNCTION__] \ + file:(NSString *)[NSString stringWithUTF8String:__FILE__] \ + lineNumber:__LINE__ \ + description:__VA_ARGS__]; \ + } \ + } while(0) +#else // !defined(NS_BLOCK_ASSERTIONS) + #define _GTMDevAssert(condition, ...) do { } while (0) +#endif // !defined(NS_BLOCK_ASSERTIONS) + +#endif // _GTMDevAssert + +// _GTMCompileAssert +// +// Note: Software for current compilers should just use _Static_assert directly +// instead of this macro. +// +// _GTMCompileAssert is an assert that is meant to fire at compile time if you +// want to check things at compile instead of runtime. For example if you +// want to check that a wchar is 4 bytes instead of 2 you would use +// _GTMCompileAssert(sizeof(wchar_t) == 4, wchar_t_is_4_bytes_on_OS_X) +// Note that the second "arg" is not in quotes, and must be a valid processor +// symbol in it's own right (no spaces, punctuation etc). + +// Wrapping this in an #ifndef allows external groups to define their own +// compile time assert scheme. +#ifndef _GTMCompileAssert + #if __has_feature(c_static_assert) || __has_extension(c_static_assert) + #define _GTMCompileAssert(test, msg) _Static_assert((test), #msg) + #else + // Pre-Xcode 7 support. + // + // We got this technique from here: + // http://unixjunkie.blogspot.com/2007/10/better-compile-time-asserts_29.html + #define _GTMCompileAssertSymbolInner(line, msg) _GTMCOMPILEASSERT ## line ## __ ## msg + #define _GTMCompileAssertSymbol(line, msg) _GTMCompileAssertSymbolInner(line, msg) + #define _GTMCompileAssert(test, msg) \ + typedef char _GTMCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ] + #endif // __has_feature(c_static_assert) || __has_extension(c_static_assert) +#endif // _GTMCompileAssert + +#pragma clang diagnostic pop + +// ---------------------------------------------------------------------------- +// CPP symbols defined based on the project settings so the GTM code has +// simple things to test against w/o scattering the knowledge of project +// setting through all the code. +// ---------------------------------------------------------------------------- + +// Provide a single constant CPP symbol that all of GTM uses for ifdefing +// iPhone code. +#if TARGET_OS_IPHONE // iPhone SDK + // For iPhone specific stuff + #define GTM_IPHONE_SDK 1 + #if TARGET_IPHONE_SIMULATOR + #define GTM_IPHONE_DEVICE 0 + #define GTM_IPHONE_SIMULATOR 1 + #else + #define GTM_IPHONE_DEVICE 1 + #define GTM_IPHONE_SIMULATOR 0 + #endif // TARGET_IPHONE_SIMULATOR + // By default, GTM has provided it's own unittesting support, define this + // to use the support provided by Xcode, especially for the Xcode4 support + // for unittesting. + #ifndef GTM_USING_XCTEST + #define GTM_USING_XCTEST 0 + #endif + #define GTM_MACOS_SDK 0 +#else + // For MacOS specific stuff + #define GTM_MACOS_SDK 1 + #define GTM_IPHONE_SDK 0 + #define GTM_IPHONE_SIMULATOR 0 + #define GTM_IPHONE_DEVICE 0 + #ifndef GTM_USING_XCTEST + #define GTM_USING_XCTEST 0 + #endif +#endif + +// Some of our own availability macros +#if GTM_MACOS_SDK +#define GTM_AVAILABLE_ONLY_ON_IPHONE UNAVAILABLE_ATTRIBUTE +#define GTM_AVAILABLE_ONLY_ON_MACOS +#else +#define GTM_AVAILABLE_ONLY_ON_IPHONE +#define GTM_AVAILABLE_ONLY_ON_MACOS UNAVAILABLE_ATTRIBUTE +#endif + +// GC was dropped by Apple, define the old constant incase anyone still keys +// off of it. +#ifndef GTM_SUPPORT_GC + #define GTM_SUPPORT_GC 0 +#endif + +// Some support for advanced clang static analysis functionality +#ifndef NS_RETURNS_RETAINED + #if __has_feature(attribute_ns_returns_retained) + #define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) + #else + #define NS_RETURNS_RETAINED + #endif +#endif + +#ifndef NS_RETURNS_NOT_RETAINED + #if __has_feature(attribute_ns_returns_not_retained) + #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained)) + #else + #define NS_RETURNS_NOT_RETAINED + #endif +#endif + +#ifndef CF_RETURNS_RETAINED + #if __has_feature(attribute_cf_returns_retained) + #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) + #else + #define CF_RETURNS_RETAINED + #endif +#endif + +#ifndef CF_RETURNS_NOT_RETAINED + #if __has_feature(attribute_cf_returns_not_retained) + #define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained)) + #else + #define CF_RETURNS_NOT_RETAINED + #endif +#endif + +#ifndef NS_CONSUMED + #if __has_feature(attribute_ns_consumed) + #define NS_CONSUMED __attribute__((ns_consumed)) + #else + #define NS_CONSUMED + #endif +#endif + +#ifndef CF_CONSUMED + #if __has_feature(attribute_cf_consumed) + #define CF_CONSUMED __attribute__((cf_consumed)) + #else + #define CF_CONSUMED + #endif +#endif + +#ifndef NS_CONSUMES_SELF + #if __has_feature(attribute_ns_consumes_self) + #define NS_CONSUMES_SELF __attribute__((ns_consumes_self)) + #else + #define NS_CONSUMES_SELF + #endif +#endif + +#ifndef GTM_NONNULL + #if defined(__has_attribute) + #if __has_attribute(nonnull) + #define GTM_NONNULL(x) __attribute__((nonnull x)) + #else + #define GTM_NONNULL(x) + #endif + #else + #define GTM_NONNULL(x) + #endif +#endif + +// Invalidates the initializer from which it's called. +#ifndef GTMInvalidateInitializer + #if __has_feature(objc_arc) + #define GTMInvalidateInitializer() \ + do { \ + [self class]; /* Avoid warning of dead store to |self|. */ \ + _GTMDevAssert(NO, @"Invalid initializer."); \ + return nil; \ + } while (0) + #else + #define GTMInvalidateInitializer() \ + do { \ + [self release]; \ + _GTMDevAssert(NO, @"Invalid initializer."); \ + return nil; \ + } while (0) + #endif +#endif + +#ifndef GTMCFAutorelease + // GTMCFAutorelease returns an id. In contrast, Apple's CFAutorelease returns + // a CFTypeRef. + #if __has_feature(objc_arc) + #define GTMCFAutorelease(x) CFBridgingRelease(x) + #else + #define GTMCFAutorelease(x) ([(id)x autorelease]) + #endif +#endif + +#ifdef __OBJC__ + + +// Macro to allow you to create NSStrings out of other macros. +// #define FOO foo +// NSString *fooString = GTM_NSSTRINGIFY(FOO); +#if !defined (GTM_NSSTRINGIFY) + #define GTM_NSSTRINGIFY_INNER(x) @#x + #define GTM_NSSTRINGIFY(x) GTM_NSSTRINGIFY_INNER(x) +#endif + +// ============================================================================ + +// GTM_SEL_STRING is for specifying selector (usually property) names to KVC +// or KVO methods. +// In debug it will generate warnings for undeclared selectors if +// -Wunknown-selector is turned on. +// In release it will have no runtime overhead. +#ifndef GTM_SEL_STRING + #ifdef DEBUG + #define GTM_SEL_STRING(selName) NSStringFromSelector(@selector(selName)) + #else + #define GTM_SEL_STRING(selName) @#selName + #endif // DEBUG +#endif // GTM_SEL_STRING + +#ifndef GTM_WEAK +#if __has_feature(objc_arc_weak) + // With ARC enabled, __weak means a reference that isn't implicitly + // retained. __weak objects are accessed through runtime functions, so + // they are zeroed out, but this requires OS X 10.7+. + // At clang r251041+, ARC-style zeroing weak references even work in + // non-ARC mode. + #define GTM_WEAK __weak + #elif __has_feature(objc_arc) + // ARC, but targeting 10.6 or older, where zeroing weak references don't + // exist. + #define GTM_WEAK __unsafe_unretained + #else + // With manual reference counting, __weak used to be silently ignored. + // clang r251041 gives it the ARC semantics instead. This means they + // now require a deployment target of 10.7, while some clients of GTM + // still target 10.6. In these cases, expand to __unsafe_unretained instead + #define GTM_WEAK + #endif +#endif + +#endif // __OBJC__ diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLocalizedString.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLocalizedString.h new file mode 100644 index 000000000..c49b8a9da --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLocalizedString.h @@ -0,0 +1,79 @@ +// +// GTMLocalizedString.h +// +// Copyright (c) 2010 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +// The NSLocalizedString macros do not have NS_FORMAT_ARGUMENT modifiers put +// on them which means you get warnings on Snow Leopard with when +// GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES and you do things like: +// NSString *foo +// = [NSString stringWithFormat:NSLocalizedString(@"blah %@", nil), @"bar"]; +// The GTMLocalizedString functions fix that for you so you can do: +// NSString *foo +// = [NSString stringWithFormat:GTMLocalizedString(@"blah %@", nil), @"bar"]; +// and you will compile cleanly. +// If you use genstrings you can call it with +// genstrings -s GTMLocalizedString ... +// and it should work as expected. +// You can override how GTM gets its localized strings (if you are using +// something other than NSLocalizedString) by redefining +// GTMLocalizedStringWithDefaultValueInternal. + +#ifndef GTMLocalizedStringWithDefaultValueInternal + #define GTMLocalizedStringWithDefaultValueInternal \ + NSLocalizedStringWithDefaultValue +#endif + +GTM_INLINE NS_FORMAT_ARGUMENT(1) NSString *GTMLocalizedString( + NSString *key, NSString *comment) { + return GTMLocalizedStringWithDefaultValueInternal(key, + nil, + [NSBundle mainBundle], + @"", + comment); +} + +GTM_INLINE NS_FORMAT_ARGUMENT(1) NSString *GTMLocalizedStringFromTable( + NSString *key, NSString *tableName, NSString *comment) { + return GTMLocalizedStringWithDefaultValueInternal(key, + tableName, + [NSBundle mainBundle], + @"", + comment); +} + +GTM_INLINE NS_FORMAT_ARGUMENT(1) NSString *GTMLocalizedStringFromTableInBundle( + NSString *key, NSString *tableName, NSBundle *bundle, NSString *comment) { + return GTMLocalizedStringWithDefaultValueInternal(key, + tableName, + bundle, + @"", + comment); +} + +GTM_INLINE NS_FORMAT_ARGUMENT(1) NSString *GTMLocalizedStringWithDefaultValue( + NSString *key, NSString *tableName, NSBundle *bundle, NSString *value, + NSString *comment) { + return GTMLocalizedStringWithDefaultValueInternal(key, + tableName, + bundle, + value, + comment); +} + diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLogger.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLogger.h new file mode 100644 index 000000000..16f0eafb9 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMLogger.h @@ -0,0 +1,508 @@ +// +// GTMLogger.h +// +// Copyright 2007-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +// Key Abstractions +// ---------------- +// +// This file declares multiple classes and protocols that are used by the +// GTMLogger logging system. The 4 main abstractions used in this file are the +// following: +// +// * logger (GTMLogger) - The main logging class that users interact with. It +// has methods for logging at different levels and uses a log writer, a log +// formatter, and a log filter to get the job done. +// +// * log writer (GTMLogWriter) - Writes a given string to some log file, where +// a "log file" can be a physical file on disk, a POST over HTTP to some URL, +// or even some in-memory structure (e.g., a ring buffer). +// +// * log formatter (GTMLogFormatter) - Given a format string and arguments as +// a va_list, returns a single formatted NSString. A "formatted string" could +// be a string with the date prepended, a string with values in a CSV format, +// or even a string of XML. +// +// * log filter (GTMLogFilter) - Given a formatted log message as an NSString +// and the level at which the message is to be logged, this class will decide +// whether the given message should be logged or not. This is a flexible way +// to filter out messages logged at a certain level, messages that contain +// certain text, or filter nothing out at all. This gives the caller the +// flexibility to dynamically enable debug logging in Release builds. +// +// This file also declares some classes to handle the common log writer, log +// formatter, and log filter cases. Callers can also create their own writers, +// formatters, and filters and they can even build them on top of the ones +// declared here. Keep in mind that your custom writer/formatter/filter may be +// called from multiple threads, so it must be thread-safe. + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +// Predeclaration of used protocols that are declared later in this file. +@protocol GTMLogWriter, GTMLogFormatter, GTMLogFilter; + +// GTMLogger +// +// GTMLogger is the primary user-facing class for an object-oriented logging +// system. It is built on the concept of log formatters (GTMLogFormatter), log +// writers (GTMLogWriter), and log filters (GTMLogFilter). When a message is +// sent to a GTMLogger to log a message, the message is formatted using the log +// formatter, then the log filter is consulted to see if the message should be +// logged, and if so, the message is sent to the log writer to be written out. +// +// GTMLogger is intended to be a flexible and thread-safe logging solution. Its +// flexibility comes from the fact that GTMLogger instances can be customized +// with user defined formatters, filters, and writers. And these writers, +// filters, and formatters can be combined, stacked, and customized in arbitrary +// ways to suit the needs at hand. For example, multiple writers can be used at +// the same time, and a GTMLogger instance can even be used as another +// GTMLogger's writer. This allows for arbitrarily deep logging trees. +// +// A standard GTMLogger uses a writer that sends messages to standard out, a +// formatter that smacks a timestamp and a few other bits of interesting +// information on the message, and a filter that filters out debug messages from +// release builds. Using the standard log settings, a log message will look like +// the following: +// +// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] foo=<Foo: 0x123> +// +// The output contains the date and time of the log message, the name of the +// process followed by its process ID/thread ID, the log level at which the +// message was logged (in the previous example the level was 1: +// kGTMLoggerLevelDebug), and finally, the user-specified log message itself (in +// this case, the log message was @"foo=%@", foo). +// +// Multiple instances of GTMLogger can be created, each configured their own +// way. Though GTMLogger is not a singleton (in the GoF sense), it does provide +// access to a shared (i.e., globally accessible) GTMLogger instance. This makes +// it convenient for all code in a process to use the same GTMLogger instance. +// The shared GTMLogger instance can also be configured in an arbitrary, and +// these configuration changes will affect all code that logs through the shared +// instance. + +// +// Log Levels +// ---------- +// GTMLogger has 3 different log levels: Debug, Info, and Error. GTMLogger +// doesn't take any special action based on the log level; it simply forwards +// this information on to formatters, filters, and writers, each of which may +// optionally take action based on the level. Since log level filtering is +// performed at runtime, log messages are typically not filtered out at compile +// time. The exception to this rule is that calls to the GTMLoggerDebug() macro +// *ARE* filtered out of non-DEBUG builds. This is to be backwards compatible +// with behavior that many developers are currently used to. Note that this +// means that GTMLoggerDebug(@"hi") will be compiled out of Release builds, but +// [[GTMLogger sharedLogger] logDebug:@"hi"] will NOT be compiled out. +// +// Standard loggers are created with the GTMLogLevelFilter log filter, which +// filters out certain log messages based on log level, and some other settings. +// +// In addition to the -logDebug:, -logInfo:, and -logError: methods defined on +// GTMLogger itself, there are also C macros that make usage of the shared +// GTMLogger instance very convenient. These macros are: +// +// GTMLoggerDebug(...) +// GTMLoggerInfo(...) +// GTMLoggerError(...) +// +// Again, a notable feature of these macros is that GTMLogDebug() calls *will be +// compiled out of non-DEBUG builds*. +// +// Standard Loggers +// ---------------- +// GTMLogger has the concept of "standard loggers". A standard logger is simply +// a logger that is pre-configured with some standard/common writer, formatter, +// and filter combination. Standard loggers are created using the creation +// methods beginning with "standard". The alternative to a standard logger is a +// regular logger, which will send messages to stdout, with no special +// formatting, and no filtering. +// +// How do I use GTMLogger? +// ---------------------- +// The typical way you will want to use GTMLogger is to simply use the +// GTMLogger*() macros for logging from code. That way we can easily make +// changes to the GTMLogger class and simply update the macros accordingly. Only +// your application startup code (perhaps, somewhere in main()) should use the +// GTMLogger class directly in order to configure the shared logger, which all +// of the code using the macros will be using. Again, this is just the typical +// situation. +// +// To be complete, there are cases where you may want to use GTMLogger directly, +// or even create separate GTMLogger instances for some reason. That's fine, +// too. +// +// Examples +// -------- +// The following show some common GTMLogger use cases. +// +// 1. You want to log something as simply as possible. Also, this call will only +// appear in debug builds. In non-DEBUG builds it will be completely removed. +// +// GTMLoggerDebug(@"foo = %@", foo); +// +// 2. The previous example is similar to the following. The major difference is +// that the previous call (example 1) will be compiled out of Release builds +// but this statement will not be compiled out. +// +// [[GTMLogger sharedLogger] logDebug:@"foo = %@", foo]; +// +// 3. Send all logging output from the shared logger to a file. We do this by +// creating an NSFileHandle for writing associated with a file, and setting +// that file handle as the logger's writer. +// +// NSFileHandle *f = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" +// create:YES]; +// [[GTMLogger sharedLogger] setWriter:f]; +// GTMLoggerError(@"hi"); // This will be sent to /tmp/f.log +// +// 4. Create a new GTMLogger that will log to a file. This example differs from +// the previous one because here we create a new GTMLogger that is different +// from the shared logger. +// +// GTMLogger *logger = [GTMLogger standardLoggerWithPath:@"/tmp/temp.log"]; +// [logger logInfo:@"hi temp log file"]; +// +// 5. Create a logger that writes to stdout and does NOT do any formatting to +// the log message. This might be useful, for example, when writing a help +// screen for a command-line tool to standard output. +// +// GTMLogger *logger = [GTMLogger logger]; +// [logger logInfo:@"%@ version 0.1 usage", progName]; +// +// 6. Send log output to stdout AND to a log file. The trick here is that +// NSArrays function as composite log writers, which means when an array is +// set as the log writer, it forwards all logging messages to all of its +// contained GTMLogWriters. +// +// // Create array of GTMLogWriters +// NSArray *writers = [NSArray arrayWithObjects: +// [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" create:YES], +// [NSFileHandle fileHandleWithStandardOutput], nil]; +// +// GTMLogger *logger = [GTMLogger standardLogger]; +// [logger setWriter:writers]; +// [logger logInfo:@"hi"]; // Output goes to stdout and /tmp/f.log +// +// For futher details on log writers, formatters, and filters, see the +// documentation below. +// +// NOTE: GTMLogger is application level logging. By default it does nothing +// with _GTMDevLog/_GTMDevAssert (see GTMDefines.h). An application can choose +// to bridge _GTMDevLog/_GTMDevAssert to GTMLogger by providing macro +// definitions in its prefix header (see GTMDefines.h for how one would do +// that). +// +@interface GTMLogger : NSObject { + @private + id<GTMLogWriter> writer_; + id<GTMLogFormatter> formatter_; + id<GTMLogFilter> filter_; +} + +// +// Accessors for the shared logger instance +// + +// Returns a shared/global standard GTMLogger instance. Callers should typically +// use this method to get a GTMLogger instance, unless they explicitly want +// their own instance to configure for their own needs. This is the only method +// that returns a shared instance; all the rest return new GTMLogger instances. ++ (id)sharedLogger; + +// Sets the shared logger instance to |logger|. Future calls to +sharedLogger +// will return |logger| instead. ++ (void)setSharedLogger:(GTMLogger *)logger; + +// +// Creation methods +// + +// Returns a new autoreleased GTMLogger instance that will log to stdout, using +// the GTMLogStandardFormatter, and the GTMLogLevelFilter filter. ++ (id)standardLogger; + +// Same as +standardLogger, but logs to stderr. ++ (id)standardLoggerWithStderr; + +// Same as +standardLogger but levels >= kGTMLoggerLevelError are routed to +// stderr, everything else goes to stdout. ++ (id)standardLoggerWithStdoutAndStderr; + +// Returns a new standard GTMLogger instance with a log writer that will +// write to the file at |path|, and will use the GTMLogStandardFormatter and +// GTMLogLevelFilter classes. If |path| does not exist, it will be created. ++ (id)standardLoggerWithPath:(NSString *)path; + +// Returns an autoreleased GTMLogger instance that will use the specified +// |writer|, |formatter|, and |filter|. ++ (id)loggerWithWriter:(id<GTMLogWriter>)writer + formatter:(id<GTMLogFormatter>)formatter + filter:(id<GTMLogFilter>)filter; + +// Returns an autoreleased GTMLogger instance that logs to stdout, with the +// basic formatter, and no filter. The returned logger differs from the logger +// returned by +standardLogger because this one does not do any filtering and +// does not do any special log formatting; this is the difference between a +// "regular" logger and a "standard" logger. ++ (id)logger; + +// Designated initializer. This method returns a GTMLogger initialized with the +// specified |writer|, |formatter|, and |filter|. See the setter methods below +// for what values will be used if nil is passed for a parameter. +- (id)initWithWriter:(id<GTMLogWriter>)writer + formatter:(id<GTMLogFormatter>)formatter + filter:(id<GTMLogFilter>)filter; + +// +// Logging methods +// + +// Logs a message at the debug level (kGTMLoggerLevelDebug). +- (void)logDebug:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); +// Logs a message at the info level (kGTMLoggerLevelInfo). +- (void)logInfo:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); +// Logs a message at the error level (kGTMLoggerLevelError). +- (void)logError:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); +// Logs a message at the assert level (kGTMLoggerLevelAssert). +- (void)logAssert:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); + + +// +// Accessors +// + +// Accessor methods for the log writer. If the log writer is set to nil, +// [NSFileHandle fileHandleWithStandardOutput] is used. +- (id<GTMLogWriter>)writer; +- (void)setWriter:(id<GTMLogWriter>)writer; + +// Accessor methods for the log formatter. If the log formatter is set to nil, +// GTMLogBasicFormatter is used. This formatter will format log messages in a +// plain printf style. +- (id<GTMLogFormatter>)formatter; +- (void)setFormatter:(id<GTMLogFormatter>)formatter; + +// Accessor methods for the log filter. If the log filter is set to nil, +// GTMLogNoFilter is used, which allows all log messages through. +- (id<GTMLogFilter>)filter; +- (void)setFilter:(id<GTMLogFilter>)filter; + +@end // GTMLogger + + +// Helper functions that are used by the convenience GTMLogger*() macros that +// enable the logging of function names. +@interface GTMLogger (GTMLoggerMacroHelpers) +- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ... + NS_FORMAT_FUNCTION(2, 3); +- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ... + NS_FORMAT_FUNCTION(2, 3); +- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ... + NS_FORMAT_FUNCTION(2, 3); +- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ... + NS_FORMAT_FUNCTION(2, 3); +@end // GTMLoggerMacroHelpers + + +// The convenience macros are only defined if they haven't already been defined. +#ifndef GTMLoggerInfo + +// Convenience macros that log to the shared GTMLogger instance. These macros +// are how users should typically log to GTMLogger. Notice that GTMLoggerDebug() +// calls will be compiled out of non-Debug builds. +#define GTMLoggerDebug(...) \ + [[GTMLogger sharedLogger] logFuncDebug:__func__ msg:__VA_ARGS__] +#define GTMLoggerInfo(...) \ + [[GTMLogger sharedLogger] logFuncInfo:__func__ msg:__VA_ARGS__] +#define GTMLoggerError(...) \ + [[GTMLogger sharedLogger] logFuncError:__func__ msg:__VA_ARGS__] +#define GTMLoggerAssert(...) \ + [[GTMLogger sharedLogger] logFuncAssert:__func__ msg:__VA_ARGS__] + +// If we're not in a debug build, remove the GTMLoggerDebug statements. This +// makes calls to GTMLoggerDebug "compile out" of Release builds +#ifndef DEBUG +#undef GTMLoggerDebug +#define GTMLoggerDebug(...) do {} while(0) +#endif + +#endif // !defined(GTMLoggerInfo) + +// Log levels. +typedef enum { + kGTMLoggerLevelUnknown, + kGTMLoggerLevelDebug, + kGTMLoggerLevelInfo, + kGTMLoggerLevelError, + kGTMLoggerLevelAssert, +} GTMLoggerLevel; + + +// +// Log Writers +// + +// Protocol to be implemented by a GTMLogWriter instance. +@protocol GTMLogWriter <NSObject> +// Writes the given log message to where the log writer is configured to write. +- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level; +@end // GTMLogWriter + + +// Simple category on NSFileHandle that makes NSFileHandles valid log writers. +// This is convenient because something like, say, +fileHandleWithStandardError +// now becomes a valid log writer. Log messages are written to the file handle +// with a newline appended. +@interface NSFileHandle (GTMFileHandleLogWriter) <GTMLogWriter> +// Opens the file at |path| in append mode, and creates the file with |mode| +// if it didn't previously exist. ++ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode; +@end // NSFileHandle + + +// This category makes NSArray a GTMLogWriter that can be composed of other +// GTMLogWriters. This is the classic Composite GoF design pattern. When the +// GTMLogWriter -logMessage:level: message is sent to the array, the array +// forwards the message to all of its elements that implement the GTMLogWriter +// protocol. +// +// This is useful in situations where you would like to send log output to +// multiple log writers at the same time. Simply create an NSArray of the log +// writers you wish to use, then set the array as the "writer" for your +// GTMLogger instance. +@interface NSArray (GTMArrayCompositeLogWriter) <GTMLogWriter> +@end // GTMArrayCompositeLogWriter + + +// This category adapts the GTMLogger interface so that it can be used as a log +// writer; it's an "adapter" in the GoF Adapter pattern sense. +// +// This is useful when you want to configure a logger to log to a specific +// writer with a specific formatter and/or filter. But you want to also compose +// that with a different log writer that may have its own formatter and/or +// filter. +@interface GTMLogger (GTMLoggerLogWriter) <GTMLogWriter> +@end // GTMLoggerLogWriter + + +// +// Log Formatters +// + +// Protocol to be implemented by a GTMLogFormatter instance. +@protocol GTMLogFormatter <NSObject> +// Returns a formatted string using the format specified in |fmt| and the va +// args specified in |args|. +- (NSString *)stringForFunc:(NSString *)func + withFormat:(NSString *)fmt + valist:(va_list)args + level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0); +@end // GTMLogFormatter + + +// A basic log formatter that formats a string the same way that NSLog (or +// printf) would. It does not do anything fancy, nor does it add any data of its +// own. +@interface GTMLogBasicFormatter : NSObject <GTMLogFormatter> + +// Helper method for prettying C99 __func__ and GCC __PRETTY_FUNCTION__ +- (NSString *)prettyNameForFunc:(NSString *)func; + +@end // GTMLogBasicFormatter + + +// A log formatter that formats the log string like the basic formatter, but +// also prepends a timestamp and some basic process info to the message, as +// shown in the following sample output. +// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] log mesage here +@interface GTMLogStandardFormatter : GTMLogBasicFormatter { + @private + NSDateFormatter *dateFormatter_; // yyyy-MM-dd HH:mm:ss.SSS + NSString *pname_; + pid_t pid_; +} +@end // GTMLogStandardFormatter + + +// +// Log Filters +// + +// Protocol to be implemented by a GTMLogFilter instance. +@protocol GTMLogFilter <NSObject> +// Returns YES if |msg| at |level| should be logged; NO otherwise. +- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level; +@end // GTMLogFilter + + +// A log filter that filters messages at the kGTMLoggerLevelDebug level out of +// non-debug builds. Messages at the kGTMLoggerLevelInfo level are also filtered +// out of non-debug builds unless GTMVerboseLogging is set in the environment or +// the processes's defaults. Messages at the kGTMLoggerLevelError level are +// never filtered. +@interface GTMLogLevelFilter : NSObject <GTMLogFilter> { + @private + BOOL verboseLoggingEnabled_; + NSUserDefaults *userDefaults_; +} +@end // GTMLogLevelFilter + +// A simple log filter that does NOT filter anything out; +// -filterAllowsMessage:level will always return YES. This can be a convenient +// way to enable debug-level logging in release builds (if you so desire). +@interface GTMLogNoFilter : NSObject <GTMLogFilter> +@end // GTMLogNoFilter + + +// Base class for custom level filters. Not for direct use, use the minimum +// or maximum level subclasses below. +@interface GTMLogAllowedLevelFilter : NSObject <GTMLogFilter> { + @private + NSIndexSet *allowedLevels_; +} +@end + +// A log filter that allows you to set a minimum log level. Messages below this +// level will be filtered. +@interface GTMLogMininumLevelFilter : GTMLogAllowedLevelFilter + +// Designated initializer, logs at levels < |level| will be filtered. +- (id)initWithMinimumLevel:(GTMLoggerLevel)level; + +@end + +// A log filter that allows you to set a maximum log level. Messages whose level +// exceeds this level will be filtered. This is really only useful if you have +// a composite GTMLogger that is sending the other messages elsewhere. +@interface GTMLogMaximumLevelFilter : GTMLogAllowedLevelFilter + +// Designated initializer, logs at levels > |level| will be filtered. +- (id)initWithMaximumLevel:(GTMLoggerLevel)level; + +@end + + +// For subclasses only +@interface GTMLogger (PrivateMethods) + +- (void)logInternalFunc:(const char *)func + format:(NSString *)fmt + valist:(va_list)args + level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0); + +@end + diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMMethodCheck.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMMethodCheck.h new file mode 100644 index 000000000..9fad81d8c --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMMethodCheck.h @@ -0,0 +1,69 @@ +// +// GTMMethodCheck.h +// +// Copyright 2006-2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> +#import <stdio.h> +#import <sysexits.h> + +/// A macro for enforcing debug time checks to make sure all required methods are linked in +// +// When using categories, it can be very easy to forget to include the +// implementation of a category. +// Let's say you had a class foo that depended on method bar of class baz, and +// method bar was implemented as a member of a category. +// You could add the following code: +// +// GTM_METHOD_CHECK(baz, bar) +// +// and the code would check to make sure baz was implemented just before main +// was called. This works for both dynamic libraries, and executables. +// +// +// This is not compiled into release builds. + +#ifdef DEBUG + +// This is the "magic". +// A) we need a multi layer define here so that the preprocessor expands +// __LINE__ the way we want it. We need __LINE__ so that each of our +// GTM_METHOD_CHECKs generates a unique function name. +#define GTM_METHOD_CHECK(class, method) GTM_METHOD_CHECK_INNER(class, method, __LINE__) +#define GTM_METHOD_CHECK_INNER(class, method, line) \ + GTM_METHOD_CHECK_INNER_INNER(class, method, line) + +// B) define a function that is called at startup to check that |class| has an +// implementation for |method| (either a class method or an instance method). +#define GTM_METHOD_CHECK_INNER_INNER(class, method, line) \ +__attribute__ ((constructor, visibility("hidden"))) \ + static void xxGTMMethodCheckMethod ## class ## line () { \ + @autoreleasepool { \ + if (![class instancesRespondToSelector:@selector(method)] \ + && ![class respondsToSelector:@selector(method)]) { \ + fprintf(stderr, "%s:%d: error: We need method '%s' to be linked in for class '%s'\n", \ + __FILE__, line, #method, #class); \ + exit(EX_SOFTWARE); \ + } \ + } \ +} + +#else // DEBUG + +// Do nothing in release. +#define GTM_METHOD_CHECK(class, method) + +#endif // DEBUG diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSData+zlib.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSData+zlib.h new file mode 100644 index 000000000..bb9e1b7e3 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSData+zlib.h @@ -0,0 +1,199 @@ +// +// GTMNSData+zlib.h +// +// Copyright 2007-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +/// Helpers for dealing w/ zlib inflate/deflate calls. +@interface NSData (GTMZLibAdditions) + +// NOTE: For 64bit, none of these apis handle input sizes >32bits, they will +// return nil when given such data. To handle data of that size you really +// should be streaming it rather then doing it all in memory. + +#pragma mark Gzip Compression + +/// Return an autoreleased NSData w/ the result of gzipping the bytes. +// +// Uses the default compression level. ++ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes + length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes + length:(NSUInteger)length + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of gzipping the payload of |data|. +// +// Uses the default compression level. ++ (NSData *)gtm_dataByGzippingData:(NSData *)data __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByGzippingData:(NSData *)data + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of gzipping the bytes using |level| compression level. +// +// |level| can be 1-9, any other values will be clipped to that range. ++ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of gzipping the payload of |data| using |level| compression level. ++ (NSData *)gtm_dataByGzippingData:(NSData *)data + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByGzippingData:(NSData *)data + compressionLevel:(int)level + error:(NSError **)error; + +#pragma mark Zlib "Stream" Compression + +// NOTE: deflate is *NOT* gzip. deflate is a "zlib" stream. pick which one +// you really want to create. (the inflate api will handle either) + +/// Return an autoreleased NSData w/ the result of deflating the bytes. +// +// Uses the default compression level. ++ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes + length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of deflating the payload of |data|. +// +// Uses the default compression level. ++ (NSData *)gtm_dataByDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByDeflatingData:(NSData *)data + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of deflating the bytes using |level| compression level. +// +// |level| can be 1-9, any other values will be clipped to that range. ++ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of deflating the payload of |data| using |level| compression level. ++ (NSData *)gtm_dataByDeflatingData:(NSData *)data + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByDeflatingData:(NSData *)data + compressionLevel:(int)level + error:(NSError **)error; + +#pragma mark Uncompress of Gzip or Zlib + +/// Return an autoreleased NSData w/ the result of decompressing the bytes. +// +// The bytes to decompress can be zlib or gzip payloads. ++ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes + length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes + length:(NSUInteger)length + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of decompressing the payload of |data|. +// +// The data to decompress can be zlib or gzip payloads. ++ (NSData *)gtm_dataByInflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByInflatingData:(NSData *)data + error:(NSError **)error; + +#pragma mark "Raw" Compression Support + +// NOTE: raw deflate is *NOT* gzip or deflate. it does not include a header +// of any form and should only be used within streams here an external crc/etc. +// is done to validate the data. The RawInflate apis can be used on data +// processed like this. + +/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes. +// +// Uses the default compression level. +// *No* header is added to the resulting data. ++ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes + length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data|. +// +// Uses the default compression level. +// *No* header is added to the resulting data. ++ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes using |level| compression level. +// +// |level| can be 1-9, any other values will be clipped to that range. +// *No* header is added to the resulting data. ++ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes + length:(NSUInteger)length + compressionLevel:(int)level + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data| using |level| compression level. +// *No* header is added to the resulting data. ++ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data + compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data + compressionLevel:(int)level + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of *raw* decompressing the bytes. +// +// The data to decompress, it should *not* have any header (zlib nor gzip). ++ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes + length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes + length:(NSUInteger)length + error:(NSError **)error; + +/// Return an autoreleased NSData w/ the result of *raw* decompressing the payload of |data|. +// +// The data to decompress, it should *not* have any header (zlib nor gzip). ++ (NSData *)gtm_dataByRawInflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); ++ (NSData *)gtm_dataByRawInflatingData:(NSData *)data + error:(NSError **)error; + +@end + +FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorDomain; +FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorKey; // NSNumber +FOUNDATION_EXPORT NSString *const GTMNSDataZlibRemainingBytesKey; // NSNumber + +typedef NS_ENUM(NSInteger, GTMNSDataZlibError) { + GTMNSDataZlibErrorGreaterThan32BitsToCompress = 1024, + // An internal zlib error. + // GTMNSDataZlibErrorKey will contain the error value. + // NSLocalizedDescriptionKey may contain an error string from zlib. + // Look in zlib.h for list of errors. + GTMNSDataZlibErrorInternal, + // There was left over data in the buffer that was not used. + // GTMNSDataZlibRemainingBytesKey will contain number of remaining bytes. + GTMNSDataZlibErrorDataRemaining +}; diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSDictionary+URLArguments.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSDictionary+URLArguments.h new file mode 100644 index 000000000..285a82c59 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSDictionary+URLArguments.h @@ -0,0 +1,40 @@ +// +// GTMNSDictionary+URLArguments.h +// +// Copyright 2006-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> + +/// Utility for building a URL or POST argument string. +@interface NSDictionary (GTMNSDictionaryURLArgumentsAdditions) + +/// Returns a dictionary of the decoded key-value pairs in a http arguments +/// string of the form key1=value1&key2=value2&...&keyN=valueN. +/// Keys and values will be unescaped automatically. +/// Only the first value for a repeated key is returned. +/// +/// NOTE: Apps targeting iOS 8 or OS X 10.10 and later should use +/// NSURLComponents and NSURLQueryItem to create URLs with +/// query arguments instead of using these category methods. ++ (NSDictionary *)gtm_dictionaryWithHttpArgumentsString:(NSString *)argString NS_DEPRECATED(10_0, 10_10, 2_0, 8_0, "Use NSURLComponents and NSURLQueryItem."); + +/// Gets a string representation of the dictionary in the form +/// key1=value1&key2=value2&...&keyN=valueN, suitable for use as either +/// URL arguments (after a '?') or POST body. Keys and values will be escaped +/// automatically, so should be unescaped in the dictionary. +- (NSString *)gtm_httpArgumentsString NS_DEPRECATED(10_0, 10_10, 2_0, 8_0, "Use NSURLComponents and NSURLQueryItem."); + +@end diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSString+URLArguments.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSString+URLArguments.h new file mode 100644 index 000000000..08fe231ce --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMNSString+URLArguments.h @@ -0,0 +1,45 @@ +// +// GTMNSString+URLArguments.h +// +// Copyright 2006-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> + +/// Utilities for encoding and decoding URL arguments. +@interface NSString (GTMNSStringURLArgumentsAdditions) + +/// Returns a string that is escaped properly to be a URL argument. +/// +/// This differs from stringByAddingPercentEscapesUsingEncoding: in that it +/// will escape all the reserved characters (per RFC 3986 +/// <http://www.ietf.org/rfc/rfc3986.txt>) which +/// stringByAddingPercentEscapesUsingEncoding would leave. +/// +/// This will also escape '%', so this should not be used on a string that has +/// already been escaped unless double-escaping is the desired result. +/// +/// NOTE: Apps targeting iOS 8 or OS X 10.10 and later should use +/// NSURLComponents and NSURLQueryItem to create properly-escaped +/// URLs instead of using these category methods. +- (NSString*)gtm_stringByEscapingForURLArgument NS_DEPRECATED(10_0, 10_10, 2_0, 8_0, "Use NSURLComponents."); + +/// Returns the unescaped version of a URL argument +/// +/// This has the same behavior as stringByReplacingPercentEscapesUsingEncoding:, +/// except that it will also convert '+' to space. +- (NSString*)gtm_stringByUnescapingFromURLArgument NS_DEPRECATED(10_0, 10_10, 2_0, 8_0, "Use NSURLComponents."); + +@end diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMStringEncoding.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMStringEncoding.h new file mode 100644 index 000000000..24fa0bc75 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMStringEncoding.h @@ -0,0 +1,112 @@ +// +// GTMStringEncoding.h +// +// Copyright 2010 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +// A generic class for arbitrary base-2 to 128 string encoding and decoding. +@interface GTMStringEncoding : NSObject { + @private + NSData *charMapData_; + char *charMap_; + int reverseCharMap_[128]; + int shift_; + int mask_; + BOOL doPad_; + char paddingChar_; + int padLen_; +} + +// Create a new, autoreleased GTMStringEncoding object with a standard encoding. ++ (id)binaryStringEncoding; ++ (id)hexStringEncoding; ++ (id)rfc4648Base32StringEncoding; ++ (id)rfc4648Base32HexStringEncoding; ++ (id)crockfordBase32StringEncoding; ++ (id)rfc4648Base64StringEncoding; ++ (id)rfc4648Base64WebsafeStringEncoding; + +// Create a new, autoreleased GTMStringEncoding object with the given string, +// as described below. ++ (id)stringEncodingWithString:(NSString *)string; + +// Initialize a new GTMStringEncoding object with the string. +// +// The length of the string must be a power of 2, at least 2 and at most 128. +// Only 7-bit ASCII characters are permitted in the string. +// +// These characters are the canonical set emitted during encoding. +// If the characters have alternatives (e.g. case, easily transposed) then use +// addDecodeSynonyms: to configure them. +- (id)initWithString:(NSString *)string; + +// Add decoding synonyms as specified in the synonyms argument. +// +// It should be a sequence of one previously reverse mapped character, +// followed by one or more non-reverse mapped character synonyms. +// Only 7-bit ASCII characters are permitted in the string. +// +// e.g. If a GTMStringEncoder object has already been initialised with a set +// of characters excluding I, L and O (to avoid confusion with digits) and you +// want to accept them as digits you can call addDecodeSynonyms:@"0oO1iIlL". +- (void)addDecodeSynonyms:(NSString *)synonyms; + +// A sequence of characters to ignore if they occur during encoding. +// Only 7-bit ASCII characters are permitted in the string. +- (void)ignoreCharacters:(NSString *)chars; + +// Indicates whether padding is performed during encoding. +- (BOOL)doPad; +- (void)setDoPad:(BOOL)doPad; + +// Sets the padding character to use during encoding. +- (void)setPaddingChar:(char)c; + +// Encode a raw binary buffer to a 7-bit ASCII string. +- (NSString *)encode:(NSData *)data __attribute__((deprecated("Use encode:error:"))); +- (NSString *)encodeString:(NSString *)string __attribute__((deprecated("Use encodeString:error:"))); + +- (NSString *)encode:(NSData *)data error:(NSError **)error; +- (NSString *)encodeString:(NSString *)string error:(NSError **)error; + +// Decode a 7-bit ASCII string to a raw binary buffer. +- (NSData *)decode:(NSString *)string __attribute__((deprecated("Use decode:error:"))); +- (NSString *)stringByDecoding:(NSString *)string __attribute__((deprecated("Use stringByDecoding:error:"))); + +- (NSData *)decode:(NSString *)string error:(NSError **)error; +- (NSString *)stringByDecoding:(NSString *)string error:(NSError **)error; + +@end + +FOUNDATION_EXPORT NSString *const GTMStringEncodingErrorDomain; +FOUNDATION_EXPORT NSString *const GTMStringEncodingBadCharacterIndexKey; // NSNumber + +typedef NS_ENUM(NSInteger, GTMStringEncodingError) { + // Unable to convert a buffer to NSASCIIStringEncoding. + GTMStringEncodingErrorUnableToConverToAscii = 1024, + // Unable to convert a buffer to NSUTF8StringEncoding. + GTMStringEncodingErrorUnableToConverToUTF8, + // Encountered a bad character. + // GTMStringEncodingBadCharacterIndexKey will have the index of the character. + GTMStringEncodingErrorUnknownCharacter, + // The data had a padding character in the middle of the data. Padding characters + // can only be at the end. + GTMStringEncodingErrorExpectedPadding, + // There is unexpected data at the end of the data that could not be decoded. + GTMStringEncodingErrorIncompleteTrailingData, +}; diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMTypeCasting.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMTypeCasting.h new file mode 100644 index 000000000..0c5899fe4 --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMTypeCasting.h @@ -0,0 +1,71 @@ +// +// GTMTypeCasting.h +// +// Copyright 2010 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +// These are some basic macros for making down-casting safer in Objective C. +// They are loosely based on the same cast types with similar names in C++. +// A typical usage would look like this: +// +// Bar* b = [[Bar alloc] init]; +// Foo* a = GTM_STATIC_CAST(Foo, b); +// +// Note that it's GTM_STATIC_CAST(Foo, b) and not GTM_STATIC_CAST(Foo*, b). +// +// GTM_STATIC_CAST runs only in debug mode, and will assert if and only if: +// - object is non nil +// - [object isKindOfClass:[cls class]] returns nil +// +// otherwise it returns object. +// +// GTM_DYNAMIC_CAST runs in both debug and release and will return nil if +// - object is nil +// - [object isKindOfClass:[cls class]] returns nil +// +// otherwise it returns object. +// + +// Support functions for dealing with casting. +GTM_INLINE id GTMDynamicCastSupport(Class cls, id object) { + _GTMDevAssert(cls, @"Nil Class"); + return [object isKindOfClass:cls] ? object : nil; +} + +GTM_INLINE id GTMStaticCastSupport(Class cls, id object) { + id value = nil; + if (object) { + value = GTMDynamicCastSupport(cls, object); + _GTMDevAssert(value, @"Could not cast %@ to class %@", object, cls); + } + return value; +} + +#ifndef GTM_STATIC_CAST + #ifdef DEBUG + #define GTM_STATIC_CAST(type, object) \ + ((type *) GTMStaticCastSupport([type class], object)) + #else + #define GTM_STATIC_CAST(type, object) ((type *) (object)) + #endif +#endif + +#ifndef GTM_DYNAMIC_CAST + #define GTM_DYNAMIC_CAST(type, object) \ + ((type *) GTMDynamicCastSupport([type class], object)) +#endif diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMURLBuilder.h b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMURLBuilder.h new file mode 100644 index 000000000..f333ec44a --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Headers/GTMURLBuilder.h @@ -0,0 +1,73 @@ +// +// GTMURLBuilder.h +// +// Copyright 2012 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. +// + +// +// Class for creating URLs. It handles URL encoding of parameters. +// +// Usage example: +// +// GTMURLBuilder *URLBuilder = +// [GTMURLBuilder builderWithString:@"http://www.google.com"]; +// [URLBuilder setValue:@"abc" forParameter:@"q"]; +// NSURL *URL = [URLBuilder URL]; +// +// NOTE: Apps targeting iOS 8 or OS X 10.10 and later should use +// NSURLComponents and NSURLQueryItem to create URLs with +// query arguments instead of using this class. + + +#import <Foundation/Foundation.h> +#import "GTMDefines.h" + +#if (!TARGET_OS_IPHONE && defined(MAC_OS_X_VERSION_10_10) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10) \ +|| (TARGET_OS_IPHONE && defined(__IPHONE_8_0) && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0) +__deprecated_msg("GTMURLBuilder is obsolete; update your app to use NSURLComponents queryItems property instead.") +#endif +@interface GTMURLBuilder : NSObject { + @private + NSMutableDictionary *params_; +} + +@property(nonatomic, readonly) NSString *baseURLString; + +// |URLString| is expected to be a valid URL with already escaped parameter +// values. ++ (GTMURLBuilder *)builderWithString:(NSString *)URLString; ++ (GTMURLBuilder *)builderWithURL:(NSURL *)URL; + +// |URLString| The base URL to which parameters will be appended. +// If the URL already contains parameters, they should already be encoded. +- (id)initWithString:(NSString *)URLString; +- (void)setValue:(NSString *)value forParameter:(NSString *)parameter; +- (void)setIntegerValue:(NSInteger)value forParameter:(NSString *)parameter; +- (NSString *)valueForParameter:(NSString *)parameter; +// Returns 0 if there is no value for |parameter| or if the value cannot +// be parsed into an NSInteger. Use valueForParameter if you want to make +// sure that the value is set before attempting the parsing. +- (NSInteger)integerValueForParameter:(NSString *)parameter; +- (void)removeParameter:(NSString *)parameter; +- (void)setParameters:(NSDictionary *)parameters; +- (NSDictionary *)parameters; +- (NSURL *)URL; +- (NSString *)URLString; + +// Case-sensitive comparison of the URL. Also protocol and host are compared +// as case-sensitive strings. The order of URL parameters is ignored. +- (BOOL)isEqual:(GTMURLBuilder *)URLBuilder; + +@end diff --git a/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Modules/module.modulemap new file mode 100644 index 000000000..5334fe1eb --- /dev/null +++ b/Libraries external/Firebase/MLVision/GoogleToolboxForMac.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module GoogleToolboxForMac { +umbrella header "GoogleToolboxForMac.h" +export * +module * { export * } + link "z" +} diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Any.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Any.pbobjc.h new file mode 100644 index 000000000..2091d72df --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Any.pbobjc.h @@ -0,0 +1,183 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/any.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBAnyRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBAnyRoot : GPBRootObject +@end + +#pragma mark - GPBAny + +typedef GPB_ENUM(GPBAny_FieldNumber) { + GPBAny_FieldNumber_TypeURL = 1, + GPBAny_FieldNumber_Value = 2, +}; + +/** + * `Any` contains an arbitrary serialized protocol buffer message along with a + * URL that describes the type of the serialized message. + * + * Protobuf library provides support to pack/unpack Any values in the form + * of utility functions or additional generated methods of the Any type. + * + * Example 1: Pack and unpack a message in C++. + * + * Foo foo = ...; + * Any any; + * any.PackFrom(foo); + * ... + * if (any.UnpackTo(&foo)) { + * ... + * } + * + * Example 2: Pack and unpack a message in Java. + * + * Foo foo = ...; + * Any any = Any.pack(foo); + * ... + * if (any.is(Foo.class)) { + * foo = any.unpack(Foo.class); + * } + * + * Example 3: Pack and unpack a message in Python. + * + * foo = Foo(...) + * any = Any() + * any.Pack(foo) + * ... + * if any.Is(Foo.DESCRIPTOR): + * any.Unpack(foo) + * ... + * + * Example 4: Pack and unpack a message in Go + * + * foo := &pb.Foo{...} + * any, err := ptypes.MarshalAny(foo) + * ... + * foo := &pb.Foo{} + * if err := ptypes.UnmarshalAny(any, foo); err != nil { + * ... + * } + * + * The pack methods provided by protobuf library will by default use + * 'type.googleapis.com/full.type.name' as the type URL and the unpack + * methods only use the fully qualified type name after the last '/' + * in the type URL, for example "foo.bar.com/x/y.z" will yield type + * name "y.z". + * + * + * JSON + * ==== + * The JSON representation of an `Any` value uses the regular + * representation of the deserialized, embedded message, with an + * additional field `\@type` which contains the type URL. Example: + * + * package google.profile; + * message Person { + * string first_name = 1; + * string last_name = 2; + * } + * + * { + * "\@type": "type.googleapis.com/google.profile.Person", + * "firstName": <string>, + * "lastName": <string> + * } + * + * If the embedded message type is well-known and has a custom JSON + * representation, that representation will be embedded adding a field + * `value` which holds the custom JSON in addition to the `\@type` + * field. Example (for message [google.protobuf.Duration][]): + * + * { + * "\@type": "type.googleapis.com/google.protobuf.Duration", + * "value": "1.212s" + * } + **/ +@interface GPBAny : GPBMessage + +/** + * A URL/resource name that uniquely identifies the type of the serialized + * protocol buffer message. This string must contain at least + * one "/" character. The last segment of the URL's path must represent + * the fully qualified name of the type (as in + * `path/google.protobuf.Duration`). The name should be in a canonical form + * (e.g., leading "." is not accepted). + * + * In practice, teams usually precompile into the binary all types that they + * expect it to use in the context of Any. However, for URLs which use the + * scheme `http`, `https`, or no scheme, one can optionally set up a type + * server that maps type URLs to message definitions as follows: + * + * * If no scheme is provided, `https` is assumed. + * * An HTTP GET on the URL must yield a [google.protobuf.Type][] + * value in binary format, or produce an error. + * * Applications are allowed to cache lookup results based on the + * URL, or have them precompiled into a binary to avoid any + * lookup. Therefore, binary compatibility needs to be preserved + * on changes to types. (Use versioned type names to manage + * breaking changes.) + * + * Note: this functionality is not currently available in the official + * protobuf release, and it is not used for type URLs beginning with + * type.googleapis.com. + * + * Schemes other than `http`, `https` (or the empty scheme) might be + * used with implementation specific semantics. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL; + +/** Must be a valid serialized protocol buffer of the above specified type. */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *value; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Api.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Api.pbobjc.h new file mode 100644 index 000000000..c93f3f15d --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Api.pbobjc.h @@ -0,0 +1,311 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/api.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +@class GPBMethod; +@class GPBMixin; +@class GPBOption; +@class GPBSourceContext; +GPB_ENUM_FWD_DECLARE(GPBSyntax); + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBApiRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBApiRoot : GPBRootObject +@end + +#pragma mark - GPBApi + +typedef GPB_ENUM(GPBApi_FieldNumber) { + GPBApi_FieldNumber_Name = 1, + GPBApi_FieldNumber_MethodsArray = 2, + GPBApi_FieldNumber_OptionsArray = 3, + GPBApi_FieldNumber_Version = 4, + GPBApi_FieldNumber_SourceContext = 5, + GPBApi_FieldNumber_MixinsArray = 6, + GPBApi_FieldNumber_Syntax = 7, +}; + +/** + * Api is a light-weight descriptor for an API Interface. + * + * Interfaces are also described as "protocol buffer services" in some contexts, + * such as by the "service" keyword in a .proto file, but they are different + * from API Services, which represent a concrete implementation of an interface + * as opposed to simply a description of methods and bindings. They are also + * sometimes simply referred to as "APIs" in other contexts, such as the name of + * this message itself. See https://cloud.google.com/apis/design/glossary for + * detailed terminology. + **/ +@interface GPBApi : GPBMessage + +/** + * The fully qualified name of this interface, including package name + * followed by the interface's simple name. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** The methods of this interface, in unspecified order. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMethod*> *methodsArray; +/** The number of items in @c methodsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger methodsArray_Count; + +/** Any metadata attached to the interface. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +/** + * A version string for this interface. If specified, must have the form + * `major-version.minor-version`, as in `1.10`. If the minor version is + * omitted, it defaults to zero. If the entire version field is empty, the + * major version is derived from the package name, as outlined below. If the + * field is not empty, the version in the package name will be verified to be + * consistent with what is provided here. + * + * The versioning schema uses [semantic + * versioning](http://semver.org) where the major version number + * indicates a breaking change and the minor version an additive, + * non-breaking change. Both version numbers are signals to users + * what to expect from different versions, and should be carefully + * chosen based on the product plan. + * + * The major version is also reflected in the package name of the + * interface, which must end in `v<major-version>`, as in + * `google.feature.v1`. For major versions 0 and 1, the suffix can + * be omitted. Zero major versions must only be used for + * experimental, non-GA interfaces. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *version; + +/** + * Source context for the protocol buffer service represented by this + * message. + **/ +@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext; +/** Test to see if @c sourceContext has been set. */ +@property(nonatomic, readwrite) BOOL hasSourceContext; + +/** Included interfaces. See [Mixin][]. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMixin*> *mixinsArray; +/** The number of items in @c mixinsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger mixinsArray_Count; + +/** The source syntax of the service. */ +@property(nonatomic, readwrite) enum GPBSyntax syntax; + +@end + +/** + * Fetches the raw value of a @c GPBApi's @c syntax property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBApi_Syntax_RawValue(GPBApi *message); +/** + * Sets the raw value of an @c GPBApi's @c syntax property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value); + +#pragma mark - GPBMethod + +typedef GPB_ENUM(GPBMethod_FieldNumber) { + GPBMethod_FieldNumber_Name = 1, + GPBMethod_FieldNumber_RequestTypeURL = 2, + GPBMethod_FieldNumber_RequestStreaming = 3, + GPBMethod_FieldNumber_ResponseTypeURL = 4, + GPBMethod_FieldNumber_ResponseStreaming = 5, + GPBMethod_FieldNumber_OptionsArray = 6, + GPBMethod_FieldNumber_Syntax = 7, +}; + +/** + * Method represents a method of an API interface. + **/ +@interface GPBMethod : GPBMessage + +/** The simple name of this method. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** A URL of the input message type. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *requestTypeURL; + +/** If true, the request is streamed. */ +@property(nonatomic, readwrite) BOOL requestStreaming; + +/** The URL of the output message type. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *responseTypeURL; + +/** If true, the response is streamed. */ +@property(nonatomic, readwrite) BOOL responseStreaming; + +/** Any metadata attached to the method. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +/** The source syntax of this method. */ +@property(nonatomic, readwrite) enum GPBSyntax syntax; + +@end + +/** + * Fetches the raw value of a @c GPBMethod's @c syntax property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBMethod_Syntax_RawValue(GPBMethod *message); +/** + * Sets the raw value of an @c GPBMethod's @c syntax property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value); + +#pragma mark - GPBMixin + +typedef GPB_ENUM(GPBMixin_FieldNumber) { + GPBMixin_FieldNumber_Name = 1, + GPBMixin_FieldNumber_Root = 2, +}; + +/** + * Declares an API Interface to be included in this interface. The including + * interface must redeclare all the methods from the included interface, but + * documentation and options are inherited as follows: + * + * - If after comment and whitespace stripping, the documentation + * string of the redeclared method is empty, it will be inherited + * from the original method. + * + * - Each annotation belonging to the service config (http, + * visibility) which is not set in the redeclared method will be + * inherited. + * + * - If an http annotation is inherited, the path pattern will be + * modified as follows. Any version prefix will be replaced by the + * version of the including interface plus the [root][] path if + * specified. + * + * Example of a simple mixin: + * + * package google.acl.v1; + * service AccessControl { + * // Get the underlying ACL object. + * rpc GetAcl(GetAclRequest) returns (Acl) { + * option (google.api.http).get = "/v1/{resource=**}:getAcl"; + * } + * } + * + * package google.storage.v2; + * service Storage { + * rpc GetAcl(GetAclRequest) returns (Acl); + * + * // Get a data record. + * rpc GetData(GetDataRequest) returns (Data) { + * option (google.api.http).get = "/v2/{resource=**}"; + * } + * } + * + * Example of a mixin configuration: + * + * apis: + * - name: google.storage.v2.Storage + * mixins: + * - name: google.acl.v1.AccessControl + * + * The mixin construct implies that all methods in `AccessControl` are + * also declared with same name and request/response types in + * `Storage`. A documentation generator or annotation processor will + * see the effective `Storage.GetAcl` method after inherting + * documentation and annotations as follows: + * + * service Storage { + * // Get the underlying ACL object. + * rpc GetAcl(GetAclRequest) returns (Acl) { + * option (google.api.http).get = "/v2/{resource=**}:getAcl"; + * } + * ... + * } + * + * Note how the version in the path pattern changed from `v1` to `v2`. + * + * If the `root` field in the mixin is specified, it should be a + * relative path under which inherited HTTP paths are placed. Example: + * + * apis: + * - name: google.storage.v2.Storage + * mixins: + * - name: google.acl.v1.AccessControl + * root: acls + * + * This implies the following inherited HTTP annotation: + * + * service Storage { + * // Get the underlying ACL object. + * rpc GetAcl(GetAclRequest) returns (Acl) { + * option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + * } + * ... + * } + **/ +@interface GPBMixin : GPBMessage + +/** The fully qualified name of the interface which is included. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** + * If non-empty specifies a path under which inherited HTTP paths + * are rooted. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *root; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Duration.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Duration.pbobjc.h new file mode 100644 index 000000000..3e3675907 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Duration.pbobjc.h @@ -0,0 +1,145 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/duration.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBDurationRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBDurationRoot : GPBRootObject +@end + +#pragma mark - GPBDuration + +typedef GPB_ENUM(GPBDuration_FieldNumber) { + GPBDuration_FieldNumber_Seconds = 1, + GPBDuration_FieldNumber_Nanos = 2, +}; + +/** + * A Duration represents a signed, fixed-length span of time represented + * as a count of seconds and fractions of seconds at nanosecond + * resolution. It is independent of any calendar and concepts like "day" + * or "month". It is related to Timestamp in that the difference between + * two Timestamp values is a Duration and it can be added or subtracted + * from a Timestamp. Range is approximately +-10,000 years. + * + * # Examples + * + * Example 1: Compute Duration from two Timestamps in pseudo code. + * + * Timestamp start = ...; + * Timestamp end = ...; + * Duration duration = ...; + * + * duration.seconds = end.seconds - start.seconds; + * duration.nanos = end.nanos - start.nanos; + * + * if (duration.seconds < 0 && duration.nanos > 0) { + * duration.seconds += 1; + * duration.nanos -= 1000000000; + * } else if (durations.seconds > 0 && duration.nanos < 0) { + * duration.seconds -= 1; + * duration.nanos += 1000000000; + * } + * + * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + * + * Timestamp start = ...; + * Duration duration = ...; + * Timestamp end = ...; + * + * end.seconds = start.seconds + duration.seconds; + * end.nanos = start.nanos + duration.nanos; + * + * if (end.nanos < 0) { + * end.seconds -= 1; + * end.nanos += 1000000000; + * } else if (end.nanos >= 1000000000) { + * end.seconds += 1; + * end.nanos -= 1000000000; + * } + * + * Example 3: Compute Duration from datetime.timedelta in Python. + * + * td = datetime.timedelta(days=3, minutes=10) + * duration = Duration() + * duration.FromTimedelta(td) + * + * # JSON Mapping + * + * In JSON format, the Duration type is encoded as a string rather than an + * object, where the string ends in the suffix "s" (indicating seconds) and + * is preceded by the number of seconds, with nanoseconds expressed as + * fractional seconds. For example, 3 seconds with 0 nanoseconds should be + * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + * be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + * microsecond should be expressed in JSON format as "3.000001s". + **/ +@interface GPBDuration : GPBMessage + +/** + * Signed seconds of the span of time. Must be from -315,576,000,000 + * to +315,576,000,000 inclusive. Note: these bounds are computed from: + * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + **/ +@property(nonatomic, readwrite) int64_t seconds; + +/** + * Signed fractions of a second at nanosecond resolution of the span + * of time. Durations less than one second are represented with a 0 + * `seconds` field and a positive or negative `nanos` field. For durations + * of one second or more, a non-zero value for the `nanos` field must be + * of the same sign as the `seconds` field. Must be from -999,999,999 + * to +999,999,999 inclusive. + **/ +@property(nonatomic, readwrite) int32_t nanos; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Empty.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Empty.pbobjc.h new file mode 100644 index 000000000..fdc247ae4 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Empty.pbobjc.h @@ -0,0 +1,74 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/empty.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBEmptyRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBEmptyRoot : GPBRootObject +@end + +#pragma mark - GPBEmpty + +/** + * A generic empty message that you can re-use to avoid defining duplicated + * empty messages in your APIs. A typical example is to use it as the request + * or the response type of an API method. For instance: + * + * service Foo { + * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + * } + * + * The JSON representation for `Empty` is empty JSON object `{}`. + **/ +@interface GPBEmpty : GPBMessage + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/FieldMask.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/FieldMask.pbobjc.h new file mode 100644 index 000000000..72cac9aa3 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/FieldMask.pbobjc.h @@ -0,0 +1,273 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/field_mask.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBFieldMaskRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBFieldMaskRoot : GPBRootObject +@end + +#pragma mark - GPBFieldMask + +typedef GPB_ENUM(GPBFieldMask_FieldNumber) { + GPBFieldMask_FieldNumber_PathsArray = 1, +}; + +/** + * `FieldMask` represents a set of symbolic field paths, for example: + * + * paths: "f.a" + * paths: "f.b.d" + * + * Here `f` represents a field in some root message, `a` and `b` + * fields in the message found in `f`, and `d` a field found in the + * message in `f.b`. + * + * Field masks are used to specify a subset of fields that should be + * returned by a get operation or modified by an update operation. + * Field masks also have a custom JSON encoding (see below). + * + * # Field Masks in Projections + * + * When used in the context of a projection, a response message or + * sub-message is filtered by the API to only contain those fields as + * specified in the mask. For example, if the mask in the previous + * example is applied to a response message as follows: + * + * f { + * a : 22 + * b { + * d : 1 + * x : 2 + * } + * y : 13 + * } + * z: 8 + * + * The result will not contain specific values for fields x,y and z + * (their value will be set to the default, and omitted in proto text + * output): + * + * + * f { + * a : 22 + * b { + * d : 1 + * } + * } + * + * A repeated field is not allowed except at the last position of a + * paths string. + * + * If a FieldMask object is not present in a get operation, the + * operation applies to all fields (as if a FieldMask of all fields + * had been specified). + * + * Note that a field mask does not necessarily apply to the + * top-level response message. In case of a REST get operation, the + * field mask applies directly to the response, but in case of a REST + * list operation, the mask instead applies to each individual message + * in the returned resource list. In case of a REST custom method, + * other definitions may be used. Where the mask applies will be + * clearly documented together with its declaration in the API. In + * any case, the effect on the returned resource/resources is required + * behavior for APIs. + * + * # Field Masks in Update Operations + * + * A field mask in update operations specifies which fields of the + * targeted resource are going to be updated. The API is required + * to only change the values of the fields as specified in the mask + * and leave the others untouched. If a resource is passed in to + * describe the updated values, the API ignores the values of all + * fields not covered by the mask. + * + * If a repeated field is specified for an update operation, new values will + * be appended to the existing repeated field in the target resource. Note that + * a repeated field is only allowed in the last position of a `paths` string. + * + * If a sub-message is specified in the last position of the field mask for an + * update operation, then new value will be merged into the existing sub-message + * in the target resource. + * + * For example, given the target message: + * + * f { + * b { + * d: 1 + * x: 2 + * } + * c: [1] + * } + * + * And an update message: + * + * f { + * b { + * d: 10 + * } + * c: [2] + * } + * + * then if the field mask is: + * + * paths: ["f.b", "f.c"] + * + * then the result will be: + * + * f { + * b { + * d: 10 + * x: 2 + * } + * c: [1, 2] + * } + * + * An implementation may provide options to override this default behavior for + * repeated and message fields. + * + * In order to reset a field's value to the default, the field must + * be in the mask and set to the default value in the provided resource. + * Hence, in order to reset all fields of a resource, provide a default + * instance of the resource and set all fields in the mask, or do + * not provide a mask as described below. + * + * If a field mask is not present on update, the operation applies to + * all fields (as if a field mask of all fields has been specified). + * Note that in the presence of schema evolution, this may mean that + * fields the client does not know and has therefore not filled into + * the request will be reset to their default. If this is unwanted + * behavior, a specific service may require a client to always specify + * a field mask, producing an error if not. + * + * As with get operations, the location of the resource which + * describes the updated values in the request message depends on the + * operation kind. In any case, the effect of the field mask is + * required to be honored by the API. + * + * ## Considerations for HTTP REST + * + * The HTTP kind of an update operation which uses a field mask must + * be set to PATCH instead of PUT in order to satisfy HTTP semantics + * (PUT must only be used for full updates). + * + * # JSON Encoding of Field Masks + * + * In JSON, a field mask is encoded as a single string where paths are + * separated by a comma. Fields name in each path are converted + * to/from lower-camel naming conventions. + * + * As an example, consider the following message declarations: + * + * message Profile { + * User user = 1; + * Photo photo = 2; + * } + * message User { + * string display_name = 1; + * string address = 2; + * } + * + * In proto a field mask for `Profile` may look as such: + * + * mask { + * paths: "user.display_name" + * paths: "photo" + * } + * + * In JSON, the same mask is represented as below: + * + * { + * mask: "user.displayName,photo" + * } + * + * # Field Masks and Oneof Fields + * + * Field masks treat fields in oneofs just as regular fields. Consider the + * following message: + * + * message SampleMessage { + * oneof test_oneof { + * string name = 4; + * SubMessage sub_message = 9; + * } + * } + * + * The field mask can be: + * + * mask { + * paths: "name" + * } + * + * Or: + * + * mask { + * paths: "sub_message" + * } + * + * Note that oneof type names ("test_oneof" in this case) cannot be used in + * paths. + * + * ## Field Mask Verification + * + * The implementation of any API method which has a FieldMask type field in the + * request should verify the included field paths, and return an + * `INVALID_ARGUMENT` error if any path is duplicated or unmappable. + **/ +@interface GPBFieldMask : GPBMessage + +/** The set of field mask paths. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *pathsArray; +/** The number of items in @c pathsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger pathsArray_Count; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray.h new file mode 100644 index 000000000..3d22cb817 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray.h @@ -0,0 +1,1967 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2015 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBRuntimeTypes.h" + +NS_ASSUME_NONNULL_BEGIN + +//%PDDM-EXPAND DECLARE_ARRAYS() +// This block of code is generated, do not edit it directly. + +#pragma mark - Int32 + +/** + * Class used for repeated fields of int32_t values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32Array : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBInt32Array. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBInt32Array with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBInt32Array with value in it. + **/ ++ (instancetype)arrayWithValue:(int32_t)value; + +/** + * Creates and initializes a GPBInt32Array with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBInt32Array with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBInt32Array *)array; + +/** + * Creates and initializes a GPBInt32Array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBInt32Array with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBInt32Array. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBInt32Array with a copy of the values. + **/ +- (instancetype)initWithValues:(const int32_t [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBInt32Array with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBInt32Array *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBInt32Array with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (int32_t)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(int32_t)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBInt32Array *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - UInt32 + +/** + * Class used for repeated fields of uint32_t values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32Array : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBUInt32Array. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBUInt32Array with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBUInt32Array with value in it. + **/ ++ (instancetype)arrayWithValue:(uint32_t)value; + +/** + * Creates and initializes a GPBUInt32Array with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBUInt32Array with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBUInt32Array *)array; + +/** + * Creates and initializes a GPBUInt32Array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBUInt32Array with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBUInt32Array. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBUInt32Array with a copy of the values. + **/ +- (instancetype)initWithValues:(const uint32_t [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBUInt32Array with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBUInt32Array *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBUInt32Array with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (uint32_t)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(uint32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(uint32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(uint32_t)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const uint32_t [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBUInt32Array *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(uint32_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint32_t)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - Int64 + +/** + * Class used for repeated fields of int64_t values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64Array : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBInt64Array. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBInt64Array with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBInt64Array with value in it. + **/ ++ (instancetype)arrayWithValue:(int64_t)value; + +/** + * Creates and initializes a GPBInt64Array with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBInt64Array with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBInt64Array *)array; + +/** + * Creates and initializes a GPBInt64Array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBInt64Array with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBInt64Array. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBInt64Array with a copy of the values. + **/ +- (instancetype)initWithValues:(const int64_t [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBInt64Array with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBInt64Array *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBInt64Array with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (int64_t)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(int64_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(int64_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(int64_t)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const int64_t [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBInt64Array *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(int64_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int64_t)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - UInt64 + +/** + * Class used for repeated fields of uint64_t values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64Array : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBUInt64Array. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBUInt64Array with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBUInt64Array with value in it. + **/ ++ (instancetype)arrayWithValue:(uint64_t)value; + +/** + * Creates and initializes a GPBUInt64Array with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBUInt64Array with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBUInt64Array *)array; + +/** + * Creates and initializes a GPBUInt64Array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBUInt64Array with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBUInt64Array. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBUInt64Array with a copy of the values. + **/ +- (instancetype)initWithValues:(const uint64_t [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBUInt64Array with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBUInt64Array *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBUInt64Array with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (uint64_t)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(uint64_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(uint64_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(uint64_t)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const uint64_t [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBUInt64Array *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(uint64_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint64_t)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - Float + +/** + * Class used for repeated fields of float values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBFloatArray : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBFloatArray. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBFloatArray with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBFloatArray with value in it. + **/ ++ (instancetype)arrayWithValue:(float)value; + +/** + * Creates and initializes a GPBFloatArray with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBFloatArray with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBFloatArray *)array; + +/** + * Creates and initializes a GPBFloatArray with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBFloatArray with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBFloatArray. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBFloatArray with a copy of the values. + **/ +- (instancetype)initWithValues:(const float [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBFloatArray with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBFloatArray *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBFloatArray with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (float)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(float value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(float value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(float)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const float [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBFloatArray *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(float)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(float)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - Double + +/** + * Class used for repeated fields of double values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBDoubleArray : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBDoubleArray. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBDoubleArray with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBDoubleArray with value in it. + **/ ++ (instancetype)arrayWithValue:(double)value; + +/** + * Creates and initializes a GPBDoubleArray with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBDoubleArray with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBDoubleArray *)array; + +/** + * Creates and initializes a GPBDoubleArray with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBDoubleArray with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBDoubleArray. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBDoubleArray with a copy of the values. + **/ +- (instancetype)initWithValues:(const double [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBDoubleArray with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBDoubleArray *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBDoubleArray with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (double)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(double value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(double value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(double)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const double [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBDoubleArray *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(double)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(double)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - Bool + +/** + * Class used for repeated fields of BOOL values. This performs better than + * boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolArray : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * @return A newly instanced and empty GPBBoolArray. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBBoolArray with the single element given. + * + * @param value The value to be placed in the array. + * + * @return A newly instanced GPBBoolArray with value in it. + **/ ++ (instancetype)arrayWithValue:(BOOL)value; + +/** + * Creates and initializes a GPBBoolArray with the contents of the given + * array. + * + * @param array Array with the contents to be put into the new array. + * + * @return A newly instanced GPBBoolArray with the contents of array. + **/ ++ (instancetype)arrayWithValueArray:(GPBBoolArray *)array; + +/** + * Creates and initializes a GPBBoolArray with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBBoolArray with a capacity of count. + **/ ++ (instancetype)arrayWithCapacity:(NSUInteger)count; + +/** + * @return A newly initialized and empty GPBBoolArray. + **/ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBBoolArray with a copy of the values. + **/ +- (instancetype)initWithValues:(const BOOL [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBBoolArray with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBBoolArray *)array; + +/** + * Initializes the array with the given capacity. + * + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBBoolArray with a capacity of count. + **/ +- (instancetype)initWithCapacity:(NSUInteger)count; + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (BOOL)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(BOOL value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(BOOL value, NSUInteger idx, BOOL *stop))block; + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(BOOL)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const BOOL [__nullable])values count:(NSUInteger)count; + +/** + * Adds the values from the given array to this array. + * + * @param array The array containing the elements to add to this array. + **/ +- (void)addValuesFromArray:(GPBBoolArray *)array; + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(BOOL)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(BOOL)value; + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +#pragma mark - Enum + +/** + * This class is used for repeated fields of int32_t values. This performs + * better than boxing into NSNumbers in NSArrays. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBEnumArray : NSObject <NSCopying> + +/** The number of elements contained in the array. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * @return A newly instanced and empty GPBEnumArray. + **/ ++ (instancetype)array; + +/** + * Creates and initializes a GPBEnumArray with the enum validation function + * given. + * + * @param func The enum validation function for the array. + * + * @return A newly instanced GPBEnumArray. + **/ ++ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Creates and initializes a GPBEnumArray with the enum validation function + * given and the single raw value given. + * + * @param func The enum validation function for the array. + * @param value The raw value to add to this array. + * + * @return A newly instanced GPBEnumArray. + **/ ++ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValue:(int32_t)value; + +/** + * Creates and initializes a GPBEnumArray that adds the elements from the + * given array. + * + * @param array Array containing the values to add to the new array. + * + * @return A newly instanced GPBEnumArray. + **/ ++ (instancetype)arrayWithValueArray:(GPBEnumArray *)array; + +/** + * Creates and initializes a GPBEnumArray with the given enum validation + * function and with the givencapacity. + * + * @param func The enum validation function for the array. + * @param count The capacity needed for the array. + * + * @return A newly instanced GPBEnumArray with a capacity of count. + **/ ++ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)count; + +/** + * Initializes the array with the given enum validation function. + * + * @param func The enum validation function for the array. + * + * @return A newly initialized GPBEnumArray with a copy of the values. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + NS_DESIGNATED_INITIALIZER; + +/** + * Initializes the array, copying the given values. + * + * @param func The enum validation function for the array. + * @param values An array with the values to put inside this array. + * @param count The number of elements to copy into the array. + * + * @return A newly initialized GPBEnumArray with a copy of the values. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + count:(NSUInteger)count; + +/** + * Initializes the array, copying the given values. + * + * @param array An array with the values to put inside this array. + * + * @return A newly initialized GPBEnumArray with a copy of the values. + **/ +- (instancetype)initWithValueArray:(GPBEnumArray *)array; + +/** + * Initializes the array with the given capacity. + * + * @param func The enum validation function for the array. + * @param count The capacity needed for the array. + * + * @return A newly initialized GPBEnumArray with a capacity of count. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)count; + +// These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a +// valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value at the given index. + * + * @param index The index of the value to get. + * + * @return The value at the given index. + **/ +- (int32_t)valueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +// These methods bypass the validationFunc to provide access to values that were not +// known at the time the binary was compiled. + +/** + * Gets the raw enum value at the given index. + * + * @param index The index of the raw enum value to get. + * + * @return The raw enum value at the given index. + **/ +- (int32_t)rawValueAtIndex:(NSUInteger)index; + +/** + * Enumerates the values on this array with the given block. + * + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateRawValuesWithBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +/** + * Enumerates the values on this array with the given block. + * + * @param opts Options to control the enumeration. + * @param block The block to enumerate with. + * **value**: The current value being enumerated. + * **idx**: The index of the current value. + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts + usingBlock:(void (NS_NOESCAPE ^)(int32_t value, NSUInteger idx, BOOL *stop))block; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Adds a value to this array. + * + * @param value The value to add to this array. + **/ +- (void)addValue:(int32_t)value; + +/** + * Adds values to this array. + * + * @param values The values to add to this array. + * @param count The number of elements to add. + **/ +- (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count; + + +/** + * Inserts a value into the given position. + * + * @param value The value to add to this array. + * @param index The index into which to insert the value. + **/ +- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the value at the given index with the given value. + * + * @param index The index for which to replace the value. + * @param value The value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; + +// These methods bypass the validationFunc to provide setting of values that were not +// known at the time the binary was compiled. + +/** + * Adds a raw enum value to this array. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param value The raw enum value to add to the array. + **/ +- (void)addRawValue:(int32_t)value; + +/** + * Adds raw enum values to this array. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param array Array containing the raw enum values to add to this array. + **/ +- (void)addRawValuesFromArray:(GPBEnumArray *)array; + +/** + * Adds raw enum values to this array. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param values Array containing the raw enum values to add to this array. + * @param count The number of raw values to add. + **/ +- (void)addRawValues:(const int32_t [__nullable])values count:(NSUInteger)count; + +/** + * Inserts a raw enum value at the given index. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param value Raw enum value to add. + * @param index The index into which to insert the value. + **/ +- (void)insertRawValue:(int32_t)value atIndex:(NSUInteger)index; + +/** + * Replaces the raw enum value at the given index with the given value. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param index The index for which to replace the value. + * @param value The raw enum value to replace with. + **/ +- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(int32_t)value; + +// No validation applies to these methods. + +/** + * Removes the value at the given index. + * + * @param index The index of the value to remove. + **/ +- (void)removeValueAtIndex:(NSUInteger)index; + +/** + * Removes all the values from this array. + **/ +- (void)removeAll; + +/** + * Exchanges the values between the given indexes. + * + * @param idx1 The index of the first element to exchange. + * @param idx2 The index of the second element to exchange. + **/ +- (void)exchangeValueAtIndex:(NSUInteger)idx1 + withValueAtIndex:(NSUInteger)idx2; + +@end + +//%PDDM-EXPAND-END DECLARE_ARRAYS() + +NS_ASSUME_NONNULL_END + +//%PDDM-DEFINE DECLARE_ARRAYS() +//%ARRAY_INTERFACE_SIMPLE(Int32, int32_t) +//%ARRAY_INTERFACE_SIMPLE(UInt32, uint32_t) +//%ARRAY_INTERFACE_SIMPLE(Int64, int64_t) +//%ARRAY_INTERFACE_SIMPLE(UInt64, uint64_t) +//%ARRAY_INTERFACE_SIMPLE(Float, float) +//%ARRAY_INTERFACE_SIMPLE(Double, double) +//%ARRAY_INTERFACE_SIMPLE(Bool, BOOL) +//%ARRAY_INTERFACE_ENUM(Enum, int32_t) + +// +// The common case (everything but Enum) +// + +//%PDDM-DEFINE ARRAY_INTERFACE_SIMPLE(NAME, TYPE) +//%#pragma mark - NAME +//% +//%/** +//% * Class used for repeated fields of ##TYPE## values. This performs better than +//% * boxing into NSNumbers in NSArrays. +//% * +//% * @note This class is not meant to be subclassed. +//% **/ +//%@interface GPB##NAME##Array : NSObject <NSCopying> +//% +//%/** The number of elements contained in the array. */ +//%@property(nonatomic, readonly) NSUInteger count; +//% +//%/** +//% * @return A newly instanced and empty GPB##NAME##Array. +//% **/ +//%+ (instancetype)array; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the single element given. +//% * +//% * @param value The value to be placed in the array. +//% * +//% * @return A newly instanced GPB##NAME##Array with value in it. +//% **/ +//%+ (instancetype)arrayWithValue:(TYPE)value; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the contents of the given +//% * array. +//% * +//% * @param array Array with the contents to be put into the new array. +//% * +//% * @return A newly instanced GPB##NAME##Array with the contents of array. +//% **/ +//%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the given capacity. +//% * +//% * @param count The capacity needed for the array. +//% * +//% * @return A newly instanced GPB##NAME##Array with a capacity of count. +//% **/ +//%+ (instancetype)arrayWithCapacity:(NSUInteger)count; +//% +//%/** +//% * @return A newly initialized and empty GPB##NAME##Array. +//% **/ +//%- (instancetype)init NS_DESIGNATED_INITIALIZER; +//% +//%/** +//% * Initializes the array, copying the given values. +//% * +//% * @param values An array with the values to put inside this array. +//% * @param count The number of elements to copy into the array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a copy of the values. +//% **/ +//%- (instancetype)initWithValues:(const TYPE [__nullable])values +//% count:(NSUInteger)count; +//% +//%/** +//% * Initializes the array, copying the given values. +//% * +//% * @param array An array with the values to put inside this array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a copy of the values. +//% **/ +//%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; +//% +//%/** +//% * Initializes the array with the given capacity. +//% * +//% * @param count The capacity needed for the array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a capacity of count. +//% **/ +//%- (instancetype)initWithCapacity:(NSUInteger)count; +//% +//%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, Basic) +//% +//%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, Basic) +//% +//%@end +//% + +// +// Macros specific to Enums (to tweak their interface). +// + +//%PDDM-DEFINE ARRAY_INTERFACE_ENUM(NAME, TYPE) +//%#pragma mark - NAME +//% +//%/** +//% * This class is used for repeated fields of ##TYPE## values. This performs +//% * better than boxing into NSNumbers in NSArrays. +//% * +//% * @note This class is not meant to be subclassed. +//% **/ +//%@interface GPB##NAME##Array : NSObject <NSCopying> +//% +//%/** The number of elements contained in the array. */ +//%@property(nonatomic, readonly) NSUInteger count; +//%/** The validation function to check if the enums are valid. */ +//%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; +//% +//%/** +//% * @return A newly instanced and empty GPB##NAME##Array. +//% **/ +//%+ (instancetype)array; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the enum validation function +//% * given. +//% * +//% * @param func The enum validation function for the array. +//% * +//% * @return A newly instanced GPB##NAME##Array. +//% **/ +//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the enum validation function +//% * given and the single raw value given. +//% * +//% * @param func The enum validation function for the array. +//% * @param value The raw value to add to this array. +//% * +//% * @return A newly instanced GPB##NAME##Array. +//% **/ +//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% rawValue:(TYPE)value; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array that adds the elements from the +//% * given array. +//% * +//% * @param array Array containing the values to add to the new array. +//% * +//% * @return A newly instanced GPB##NAME##Array. +//% **/ +//%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; +//% +//%/** +//% * Creates and initializes a GPB##NAME##Array with the given enum validation +//% * function and with the givencapacity. +//% * +//% * @param func The enum validation function for the array. +//% * @param count The capacity needed for the array. +//% * +//% * @return A newly instanced GPB##NAME##Array with a capacity of count. +//% **/ +//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% capacity:(NSUInteger)count; +//% +//%/** +//% * Initializes the array with the given enum validation function. +//% * +//% * @param func The enum validation function for the array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a copy of the values. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% NS_DESIGNATED_INITIALIZER; +//% +//%/** +//% * Initializes the array, copying the given values. +//% * +//% * @param func The enum validation function for the array. +//% * @param values An array with the values to put inside this array. +//% * @param count The number of elements to copy into the array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a copy of the values. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% rawValues:(const TYPE [__nullable])values +//% count:(NSUInteger)count; +//% +//%/** +//% * Initializes the array, copying the given values. +//% * +//% * @param array An array with the values to put inside this array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a copy of the values. +//% **/ +//%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; +//% +//%/** +//% * Initializes the array with the given capacity. +//% * +//% * @param func The enum validation function for the array. +//% * @param count The capacity needed for the array. +//% * +//% * @return A newly initialized GPB##NAME##Array with a capacity of count. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% capacity:(NSUInteger)count; +//% +//%// These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a +//%// valid enumerator as defined by validationFunc. If the actual value is +//%// desired, use "raw" version of the method. +//% +//%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, NAME) +//% +//%// These methods bypass the validationFunc to provide access to values that were not +//%// known at the time the binary was compiled. +//% +//%/** +//% * Gets the raw enum value at the given index. +//% * +//% * @param index The index of the raw enum value to get. +//% * +//% * @return The raw enum value at the given index. +//% **/ +//%- (TYPE)rawValueAtIndex:(NSUInteger)index; +//% +//%/** +//% * Enumerates the values on this array with the given block. +//% * +//% * @param block The block to enumerate with. +//% * **value**: The current value being enumerated. +//% * **idx**: The index of the current value. +//% * **stop**: A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateRawValuesWithBlock:(void (NS_NOESCAPE ^)(TYPE value, NSUInteger idx, BOOL *stop))block; +//% +//%/** +//% * Enumerates the values on this array with the given block. +//% * +//% * @param opts Options to control the enumeration. +//% * @param block The block to enumerate with. +//% * **value**: The current value being enumerated. +//% * **idx**: The index of the current value. +//% * **stop**: A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts +//% usingBlock:(void (NS_NOESCAPE ^)(TYPE value, NSUInteger idx, BOOL *stop))block; +//% +//%// If value is not a valid enumerator as defined by validationFunc, these +//%// methods will assert in debug, and will log in release and assign the value +//%// to the default value. Use the rawValue methods below to assign non enumerator +//%// values. +//% +//%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, NAME) +//% +//%@end +//% + +//%PDDM-DEFINE ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) +//%/** +//% * Gets the value at the given index. +//% * +//% * @param index The index of the value to get. +//% * +//% * @return The value at the given index. +//% **/ +//%- (TYPE)valueAtIndex:(NSUInteger)index; +//% +//%/** +//% * Enumerates the values on this array with the given block. +//% * +//% * @param block The block to enumerate with. +//% * **value**: The current value being enumerated. +//% * **idx**: The index of the current value. +//% * **stop**: A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateValuesWithBlock:(void (NS_NOESCAPE ^)(TYPE value, NSUInteger idx, BOOL *stop))block; +//% +//%/** +//% * Enumerates the values on this array with the given block. +//% * +//% * @param opts Options to control the enumeration. +//% * @param block The block to enumerate with. +//% * **value**: The current value being enumerated. +//% * **idx**: The index of the current value. +//% * **stop**: A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts +//% usingBlock:(void (NS_NOESCAPE ^)(TYPE value, NSUInteger idx, BOOL *stop))block; + +//%PDDM-DEFINE ARRAY_MUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) +//%/** +//% * Adds a value to this array. +//% * +//% * @param value The value to add to this array. +//% **/ +//%- (void)addValue:(TYPE)value; +//% +//%/** +//% * Adds values to this array. +//% * +//% * @param values The values to add to this array. +//% * @param count The number of elements to add. +//% **/ +//%- (void)addValues:(const TYPE [__nullable])values count:(NSUInteger)count; +//% +//%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE) +//%/** +//% * Inserts a value into the given position. +//% * +//% * @param value The value to add to this array. +//% * @param index The index into which to insert the value. +//% **/ +//%- (void)insertValue:(TYPE)value atIndex:(NSUInteger)index; +//% +//%/** +//% * Replaces the value at the given index with the given value. +//% * +//% * @param index The index for which to replace the value. +//% * @param value The value to replace with. +//% **/ +//%- (void)replaceValueAtIndex:(NSUInteger)index withValue:(TYPE)value; +//%ARRAY_EXTRA_MUTABLE_METHODS2_##HELPER_NAME(NAME, TYPE) +//%/** +//% * Removes the value at the given index. +//% * +//% * @param index The index of the value to remove. +//% **/ +//%- (void)removeValueAtIndex:(NSUInteger)index; +//% +//%/** +//% * Removes all the values from this array. +//% **/ +//%- (void)removeAll; +//% +//%/** +//% * Exchanges the values between the given indexes. +//% * +//% * @param idx1 The index of the first element to exchange. +//% * @param idx2 The index of the second element to exchange. +//% **/ +//%- (void)exchangeValueAtIndex:(NSUInteger)idx1 +//% withValueAtIndex:(NSUInteger)idx2; + +// +// These are hooks invoked by the above to do insert as needed. +// + +//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Basic(NAME, TYPE) +//%/** +//% * Adds the values from the given array to this array. +//% * +//% * @param array The array containing the elements to add to this array. +//% **/ +//%- (void)addValuesFromArray:(GPB##NAME##Array *)array; +//% +//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Basic(NAME, TYPE) +// Empty +//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Enum(NAME, TYPE) +// Empty +//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Enum(NAME, TYPE) +//% +//%// These methods bypass the validationFunc to provide setting of values that were not +//%// known at the time the binary was compiled. +//% +//%/** +//% * Adds a raw enum value to this array. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param value The raw enum value to add to the array. +//% **/ +//%- (void)addRawValue:(TYPE)value; +//% +//%/** +//% * Adds raw enum values to this array. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param array Array containing the raw enum values to add to this array. +//% **/ +//%- (void)addRawValuesFromArray:(GPB##NAME##Array *)array; +//% +//%/** +//% * Adds raw enum values to this array. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param values Array containing the raw enum values to add to this array. +//% * @param count The number of raw values to add. +//% **/ +//%- (void)addRawValues:(const TYPE [__nullable])values count:(NSUInteger)count; +//% +//%/** +//% * Inserts a raw enum value at the given index. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param value Raw enum value to add. +//% * @param index The index into which to insert the value. +//% **/ +//%- (void)insertRawValue:(TYPE)value atIndex:(NSUInteger)index; +//% +//%/** +//% * Replaces the raw enum value at the given index with the given value. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param index The index for which to replace the value. +//% * @param value The raw enum value to replace with. +//% **/ +//%- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(TYPE)value; +//% +//%// No validation applies to these methods. +//% diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray_PackagePrivate.h new file mode 100644 index 000000000..35a453813 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBArray_PackagePrivate.h @@ -0,0 +1,130 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2015 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import "GPBArray.h" + +@class GPBMessage; + +//%PDDM-DEFINE DECLARE_ARRAY_EXTRAS() +//%ARRAY_INTERFACE_EXTRAS(Int32, int32_t) +//%ARRAY_INTERFACE_EXTRAS(UInt32, uint32_t) +//%ARRAY_INTERFACE_EXTRAS(Int64, int64_t) +//%ARRAY_INTERFACE_EXTRAS(UInt64, uint64_t) +//%ARRAY_INTERFACE_EXTRAS(Float, float) +//%ARRAY_INTERFACE_EXTRAS(Double, double) +//%ARRAY_INTERFACE_EXTRAS(Bool, BOOL) +//%ARRAY_INTERFACE_EXTRAS(Enum, int32_t) + +//%PDDM-DEFINE ARRAY_INTERFACE_EXTRAS(NAME, TYPE) +//%#pragma mark - NAME +//% +//%@interface GPB##NAME##Array () { +//% @package +//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +//%} +//%@end +//% + +//%PDDM-EXPAND DECLARE_ARRAY_EXTRAS() +// This block of code is generated, do not edit it directly. + +#pragma mark - Int32 + +@interface GPBInt32Array () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - UInt32 + +@interface GPBUInt32Array () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Int64 + +@interface GPBInt64Array () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - UInt64 + +@interface GPBUInt64Array () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Float + +@interface GPBFloatArray () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Double + +@interface GPBDoubleArray () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Bool + +@interface GPBBoolArray () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Enum + +@interface GPBEnumArray () { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +//%PDDM-EXPAND-END DECLARE_ARRAY_EXTRAS() + +#pragma mark - NSArray Subclass + +@interface GPBAutocreatedArray : NSMutableArray { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBBootstrap.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBBootstrap.h new file mode 100644 index 000000000..0ebca25be --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBBootstrap.h @@ -0,0 +1,141 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/** + * The Objective C runtime has complete enough info that most protos don’t end + * up using this, so leaving it on is no cost or very little cost. If you + * happen to see it causing bloat, this is the way to disable it. If you do + * need to disable it, try only disabling it for Release builds as having + * full TextFormat can be useful for debugging. + **/ +#ifndef GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS +#define GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS 0 +#endif + +// Used in the generated code to give sizes to enums. int32_t was chosen based +// on the fact that Protocol Buffers enums are limited to this range. +#if !__has_feature(objc_fixed_enum) + #error All supported Xcode versions should support objc_fixed_enum. +#endif + +// If the headers are imported into Objective-C++, we can run into an issue +// where the defintion of NS_ENUM (really CF_ENUM) changes based on the C++ +// standard that is in effect. If it isn't C++11 or higher, the definition +// doesn't allow us to forward declare. We work around this one case by +// providing a local definition. The default case has to use NS_ENUM for the +// magic that is Swift bridging of enums. +#if (defined(__cplusplus) && __cplusplus && __cplusplus < 201103L) + #define GPB_ENUM(X) enum X : int32_t X; enum X : int32_t +#else + #define GPB_ENUM(X) NS_ENUM(int32_t, X) +#endif + +/** + * GPB_ENUM_FWD_DECLARE is used for forward declaring enums, for example: + * + * ``` + * GPB_ENUM_FWD_DECLARE(Foo_Enum) + * + * @interface BarClass : NSObject + * @property (nonatomic) enum Foo_Enum value; + * - (void)bazMethod:(enum Foo_Enum):value; + * @end + * ``` + **/ +#define GPB_ENUM_FWD_DECLARE(X) enum X : int32_t + +/** + * Based upon CF_INLINE. Forces inlining in non DEBUG builds. + **/ +#if !defined(DEBUG) +#define GPB_INLINE static __inline__ __attribute__((always_inline)) +#else +#define GPB_INLINE static __inline__ +#endif + +/** + * For use in public headers that might need to deal with ARC. + **/ +#ifndef GPB_UNSAFE_UNRETAINED +#if __has_feature(objc_arc) +#define GPB_UNSAFE_UNRETAINED __unsafe_unretained +#else +#define GPB_UNSAFE_UNRETAINED +#endif +#endif + +/** + * Attribute used for Objective-C proto interface deprecations without messages. + **/ +#ifndef GPB_DEPRECATED +#define GPB_DEPRECATED __attribute__((deprecated)) +#endif + +/** + * Attribute used for Objective-C proto interface deprecations with messages. + **/ +#ifndef GPB_DEPRECATED_MSG +#if __has_extension(attribute_deprecated_with_message) +#define GPB_DEPRECATED_MSG(msg) __attribute__((deprecated(msg))) +#else +#define GPB_DEPRECATED_MSG(msg) __attribute__((deprecated)) +#endif +#endif + +// If property name starts with init we need to annotate it to get past ARC. +// http://stackoverflow.com/questions/18723226/how-do-i-annotate-an-objective-c-property-with-an-objc-method-family/18723227#18723227 +// +// Meant to be used internally by generated code. +#define GPB_METHOD_FAMILY_NONE __attribute__((objc_method_family(none))) + +// ---------------------------------------------------------------------------- +// These version numbers are all internal to the ObjC Protobuf runtime; they +// are used to ensure compatibility between the generated sources and the +// headers being compiled against and/or the version of sources being run +// against. +// +// They are all #defines so the values are captured into every .o file they +// are used in and to allow comparisons in the preprocessor. + +// Current library runtime version. +// - Gets bumped when the runtime makes changes to the interfaces between the +// generated code and runtime (things added/removed, etc). +#define GOOGLE_PROTOBUF_OBJC_VERSION 30002 + +// Minimum runtime version supported for compiling/running against. +// - Gets changed when support for the older generated code is dropped. +#define GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION 30001 + + +// This is a legacy constant now frozen in time for old generated code. If +// GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION ever gets moved above 30001 then +// this should also change to break code compiled with an old runtime that +// can't be supported any more. +#define GOOGLE_PROTOBUF_OBJC_GEN_VERSION 30001 diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream.h new file mode 100644 index 000000000..fbe5009c9 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream.h @@ -0,0 +1,253 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +@class GPBMessage; +@class GPBExtensionRegistry; + +NS_ASSUME_NONNULL_BEGIN + +CF_EXTERN_C_BEGIN + +/** + * @c GPBCodedInputStream exception name. Exceptions raised from + * @c GPBCodedInputStream contain an underlying error in the userInfo dictionary + * under the GPBCodedInputStreamUnderlyingErrorKey key. + **/ +extern NSString *const GPBCodedInputStreamException; + +/** The key under which the underlying NSError from the exception is stored. */ +extern NSString *const GPBCodedInputStreamUnderlyingErrorKey; + +/** NSError domain used for @c GPBCodedInputStream errors. */ +extern NSString *const GPBCodedInputStreamErrorDomain; + +/** + * Error code for NSError with @c GPBCodedInputStreamErrorDomain. + **/ +typedef NS_ENUM(NSInteger, GPBCodedInputStreamErrorCode) { + /** The size does not fit in the remaining bytes to be read. */ + GPBCodedInputStreamErrorInvalidSize = -100, + /** Attempted to read beyond the subsection limit. */ + GPBCodedInputStreamErrorSubsectionLimitReached = -101, + /** The requested subsection limit is invalid. */ + GPBCodedInputStreamErrorInvalidSubsectionLimit = -102, + /** Invalid tag read. */ + GPBCodedInputStreamErrorInvalidTag = -103, + /** Invalid UTF-8 character in a string. */ + GPBCodedInputStreamErrorInvalidUTF8 = -104, + /** Invalid VarInt read. */ + GPBCodedInputStreamErrorInvalidVarInt = -105, + /** The maximum recursion depth of messages was exceeded. */ + GPBCodedInputStreamErrorRecursionDepthExceeded = -106, +}; + +CF_EXTERN_C_END + +/** + * Reads and decodes protocol message fields. + * + * The common uses of protocol buffers shouldn't need to use this class. + * @c GPBMessage's provide a @c +parseFromData:error: and + * @c +parseFromData:extensionRegistry:error: method that will decode a + * message for you. + * + * @note Subclassing of @c GPBCodedInputStream is NOT supported. + **/ +@interface GPBCodedInputStream : NSObject + +/** + * Creates a new stream wrapping some data. + * + * @param data The data to wrap inside the stream. + * + * @return A newly instanced GPBCodedInputStream. + **/ ++ (instancetype)streamWithData:(NSData *)data; + +/** + * Initializes a stream wrapping some data. + * + * @param data The data to wrap inside the stream. + * + * @return A newly initialized GPBCodedInputStream. + **/ +- (instancetype)initWithData:(NSData *)data; + +/** + * Attempts to read a field tag, returning zero if we have reached EOF. + * Protocol message parsers use this to read tags, since a protocol message + * may legally end wherever a tag occurs, and zero is not a valid tag number. + * + * @return The field tag, or zero if EOF was reached. + **/ +- (int32_t)readTag; + +/** + * @return A double read from the stream. + **/ +- (double)readDouble; +/** + * @return A float read from the stream. + **/ +- (float)readFloat; +/** + * @return A uint64 read from the stream. + **/ +- (uint64_t)readUInt64; +/** + * @return A uint32 read from the stream. + **/ +- (uint32_t)readUInt32; +/** + * @return An int64 read from the stream. + **/ +- (int64_t)readInt64; +/** + * @return An int32 read from the stream. + **/ +- (int32_t)readInt32; +/** + * @return A fixed64 read from the stream. + **/ +- (uint64_t)readFixed64; +/** + * @return A fixed32 read from the stream. + **/ +- (uint32_t)readFixed32; +/** + * @return An enum read from the stream. + **/ +- (int32_t)readEnum; +/** + * @return A sfixed32 read from the stream. + **/ +- (int32_t)readSFixed32; +/** + * @return A fixed64 read from the stream. + **/ +- (int64_t)readSFixed64; +/** + * @return A sint32 read from the stream. + **/ +- (int32_t)readSInt32; +/** + * @return A sint64 read from the stream. + **/ +- (int64_t)readSInt64; +/** + * @return A boolean read from the stream. + **/ +- (BOOL)readBool; +/** + * @return A string read from the stream. + **/ +- (NSString *)readString; +/** + * @return Data read from the stream. + **/ +- (NSData *)readBytes; + +/** + * Read an embedded message field value from the stream. + * + * @param message The message to set fields on as they are read. + * @param extensionRegistry An optional extension registry to use to lookup + * extensions for message. + **/ +- (void)readMessage:(GPBMessage *)message + extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry; + +/** + * Reads and discards a single field, given its tag value. + * + * @param tag The tag number of the field to skip. + * + * @return NO if the tag is an endgroup tag (in which case nothing is skipped), + * YES in all other cases. + **/ +- (BOOL)skipField:(int32_t)tag; + +/** + * Reads and discards an entire message. This will read either until EOF or + * until an endgroup tag, whichever comes first. + **/ +- (void)skipMessage; + +/** + * Check to see if the logical end of the stream has been reached. + * + * @note This can return NO when there is no more data, but the current parsing + * expected more data. + * + * @return YES if the logical end of the stream has been reached, NO otherwise. + **/ +- (BOOL)isAtEnd; + +/** + * @return The offset into the stream. + **/ +- (size_t)position; + +/** + * Moves the limit to the given byte offset starting at the current location. + * + * @exception GPBCodedInputStreamException If the requested bytes exceeed the + * current limit. + * + * @param byteLimit The number of bytes to move the limit, offset to the current + * location. + * + * @return The limit offset before moving the new limit. + */ +- (size_t)pushLimit:(size_t)byteLimit; + +/** + * Moves the limit back to the offset as it was before calling pushLimit:. + * + * @param oldLimit The number of bytes to move the current limit. Usually this + * is the value returned by the pushLimit: method. + */ +- (void)popLimit:(size_t)oldLimit; + +/** + * Verifies that the last call to -readTag returned the given tag value. This + * is used to verify that a nested group ended with the correct end tag. + * + * @exception NSParseErrorException If the value does not match the last tag. + * + * @param expected The tag that was expected. + **/ +- (void)checkLastTagWas:(int32_t)expected; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream_PackagePrivate.h new file mode 100644 index 000000000..43ec6e79b --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedInputStream_PackagePrivate.h @@ -0,0 +1,112 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This header is private to the ProtobolBuffers library and must NOT be +// included by any sources outside this library. The contents of this file are +// subject to change at any time without notice. + +#import "GPBCodedInputStream.h" + +@class GPBUnknownFieldSet; +@class GPBFieldDescriptor; + +typedef struct GPBCodedInputStreamState { + const uint8_t *bytes; + size_t bufferSize; + size_t bufferPos; + + // For parsing subsections of an input stream you can put a hard limit on + // how much should be read. Normally the limit is the end of the stream, + // but you can adjust it to anywhere, and if you hit it you will be at the + // end of the stream, until you adjust the limit. + size_t currentLimit; + int32_t lastTag; + NSUInteger recursionDepth; +} GPBCodedInputStreamState; + +@interface GPBCodedInputStream () { + @package + struct GPBCodedInputStreamState state_; + NSData *buffer_; +} + +// Group support is deprecated, so we hide this interface from users, but +// support for older data. +- (void)readGroup:(int32_t)fieldNumber + message:(GPBMessage *)message + extensionRegistry:(GPBExtensionRegistry *)extensionRegistry; + +// Reads a group field value from the stream and merges it into the given +// UnknownFieldSet. +- (void)readUnknownGroup:(int32_t)fieldNumber + message:(GPBUnknownFieldSet *)message; + +// Reads a map entry. +- (void)readMapEntry:(id)mapDictionary + extensionRegistry:(GPBExtensionRegistry *)extensionRegistry + field:(GPBFieldDescriptor *)field + parentMessage:(GPBMessage *)parentMessage; +@end + +CF_EXTERN_C_BEGIN + +int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state); + +double GPBCodedInputStreamReadDouble(GPBCodedInputStreamState *state); +float GPBCodedInputStreamReadFloat(GPBCodedInputStreamState *state); +uint64_t GPBCodedInputStreamReadUInt64(GPBCodedInputStreamState *state); +uint32_t GPBCodedInputStreamReadUInt32(GPBCodedInputStreamState *state); +int64_t GPBCodedInputStreamReadInt64(GPBCodedInputStreamState *state); +int32_t GPBCodedInputStreamReadInt32(GPBCodedInputStreamState *state); +uint64_t GPBCodedInputStreamReadFixed64(GPBCodedInputStreamState *state); +uint32_t GPBCodedInputStreamReadFixed32(GPBCodedInputStreamState *state); +int32_t GPBCodedInputStreamReadEnum(GPBCodedInputStreamState *state); +int32_t GPBCodedInputStreamReadSFixed32(GPBCodedInputStreamState *state); +int64_t GPBCodedInputStreamReadSFixed64(GPBCodedInputStreamState *state); +int32_t GPBCodedInputStreamReadSInt32(GPBCodedInputStreamState *state); +int64_t GPBCodedInputStreamReadSInt64(GPBCodedInputStreamState *state); +BOOL GPBCodedInputStreamReadBool(GPBCodedInputStreamState *state); +NSString *GPBCodedInputStreamReadRetainedString(GPBCodedInputStreamState *state) + __attribute((ns_returns_retained)); +NSData *GPBCodedInputStreamReadRetainedBytes(GPBCodedInputStreamState *state) + __attribute((ns_returns_retained)); +NSData *GPBCodedInputStreamReadRetainedBytesNoCopy( + GPBCodedInputStreamState *state) __attribute((ns_returns_retained)); + +size_t GPBCodedInputStreamPushLimit(GPBCodedInputStreamState *state, + size_t byteLimit); +void GPBCodedInputStreamPopLimit(GPBCodedInputStreamState *state, + size_t oldLimit); +size_t GPBCodedInputStreamBytesUntilLimit(GPBCodedInputStreamState *state); +BOOL GPBCodedInputStreamIsAtEnd(GPBCodedInputStreamState *state); +void GPBCodedInputStreamCheckLastTagWas(GPBCodedInputStreamState *state, + int32_t value); + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream.h new file mode 100644 index 000000000..23c404b85 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream.h @@ -0,0 +1,748 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBRuntimeTypes.h" +#import "GPBWireFormat.h" + +@class GPBBoolArray; +@class GPBDoubleArray; +@class GPBEnumArray; +@class GPBFloatArray; +@class GPBMessage; +@class GPBInt32Array; +@class GPBInt64Array; +@class GPBUInt32Array; +@class GPBUInt64Array; +@class GPBUnknownFieldSet; + +NS_ASSUME_NONNULL_BEGIN + +/** + * @c GPBCodedOutputStream exception names. + **/ +extern NSString *const GPBCodedOutputStreamException_OutOfSpace; +extern NSString *const GPBCodedOutputStreamException_WriteFailed; + +/** + * Writes out protocol message fields. + * + * The common uses of protocol buffers shouldn't need to use this class. + * GPBMessage's provide a -data method that will serialize the message for you. + * + * @note Any -write* api can raise the GPBCodedOutputStreamException_* + * exceptions. + * + * @note Subclassing of GPBCodedOutputStream is NOT supported. + **/ +@interface GPBCodedOutputStream : NSObject + +/** + * Creates a stream to fill in the given data. Data must be sized to fit or + * an error will be raised when out of space. + * + * @param data The data where the stream will be written to. + * + * @return A newly instanced GPBCodedOutputStream. + **/ ++ (instancetype)streamWithData:(NSMutableData *)data; + +/** + * Creates a stream to write into the given NSOutputStream. + * + * @param output The output stream where the stream will be written to. + * + * @return A newly instanced GPBCodedOutputStream. + **/ ++ (instancetype)streamWithOutputStream:(NSOutputStream *)output; + +/** + * Initializes a stream to fill in the given data. Data must be sized to fit + * or an error will be raised when out of space. + * + * @param data The data where the stream will be written to. + * + * @return A newly initialized GPBCodedOutputStream. + **/ +- (instancetype)initWithData:(NSMutableData *)data; + +/** + * Initializes a stream to write into the given @c NSOutputStream. + * + * @param output The output stream where the stream will be written to. + * + * @return A newly initialized GPBCodedOutputStream. + **/ +- (instancetype)initWithOutputStream:(NSOutputStream *)output; + +/** + * Flush any buffered data out. + **/ +- (void)flush; + +/** + * Write the raw byte out. + * + * @param value The value to write out. + **/ +- (void)writeRawByte:(uint8_t)value; + +/** + * Write the tag for the given field number and wire format. + * + * @param fieldNumber The field number. + * @param format The wire format the data for the field will be in. + **/ +- (void)writeTag:(uint32_t)fieldNumber format:(GPBWireFormat)format; + +/** + * Write a 32bit value out in little endian format. + * + * @param value The value to write out. + **/ +- (void)writeRawLittleEndian32:(int32_t)value; +/** + * Write a 64bit value out in little endian format. + * + * @param value The value to write out. + **/ +- (void)writeRawLittleEndian64:(int64_t)value; + +/** + * Write a 32bit value out in varint format. + * + * @param value The value to write out. + **/ +- (void)writeRawVarint32:(int32_t)value; +/** + * Write a 64bit value out in varint format. + * + * @param value The value to write out. + **/ +- (void)writeRawVarint64:(int64_t)value; + +/** + * Write a size_t out as a 32bit varint value. + * + * @note This will truncate 64 bit values to 32. + * + * @param value The value to write out. + **/ +- (void)writeRawVarintSizeTAs32:(size_t)value; + +/** + * Writes the contents of an NSData out. + * + * @param data The data to write out. + **/ +- (void)writeRawData:(NSData *)data; +/** + * Writes out the given data. + * + * @param data The data blob to write out. + * @param offset The offset into the blob to start writing out. + * @param length The number of bytes from the blob to write out. + **/ +- (void)writeRawPtr:(const void *)data + offset:(size_t)offset + length:(size_t)length; + +//%PDDM-EXPAND _WRITE_DECLS() +// This block of code is generated, do not edit it directly. + +/** + * Write a double for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeDouble:(int32_t)fieldNumber value:(double)value; +/** + * Write a packed array of double for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeDoubleArray:(int32_t)fieldNumber + values:(GPBDoubleArray *)values + tag:(uint32_t)tag; +/** + * Write a double without any tag. + * + * @param value The value to write out. + **/ +- (void)writeDoubleNoTag:(double)value; + +/** + * Write a float for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeFloat:(int32_t)fieldNumber value:(float)value; +/** + * Write a packed array of float for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeFloatArray:(int32_t)fieldNumber + values:(GPBFloatArray *)values + tag:(uint32_t)tag; +/** + * Write a float without any tag. + * + * @param value The value to write out. + **/ +- (void)writeFloatNoTag:(float)value; + +/** + * Write a uint64_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeUInt64:(int32_t)fieldNumber value:(uint64_t)value; +/** + * Write a packed array of uint64_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeUInt64Array:(int32_t)fieldNumber + values:(GPBUInt64Array *)values + tag:(uint32_t)tag; +/** + * Write a uint64_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeUInt64NoTag:(uint64_t)value; + +/** + * Write a int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeInt64:(int32_t)fieldNumber value:(int64_t)value; +/** + * Write a packed array of int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeInt64Array:(int32_t)fieldNumber + values:(GPBInt64Array *)values + tag:(uint32_t)tag; +/** + * Write a int64_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeInt64NoTag:(int64_t)value; + +/** + * Write a int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeInt32:(int32_t)fieldNumber value:(int32_t)value; +/** + * Write a packed array of int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeInt32Array:(int32_t)fieldNumber + values:(GPBInt32Array *)values + tag:(uint32_t)tag; +/** + * Write a int32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeInt32NoTag:(int32_t)value; + +/** + * Write a uint32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeUInt32:(int32_t)fieldNumber value:(uint32_t)value; +/** + * Write a packed array of uint32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeUInt32Array:(int32_t)fieldNumber + values:(GPBUInt32Array *)values + tag:(uint32_t)tag; +/** + * Write a uint32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeUInt32NoTag:(uint32_t)value; + +/** + * Write a uint64_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeFixed64:(int32_t)fieldNumber value:(uint64_t)value; +/** + * Write a packed array of uint64_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeFixed64Array:(int32_t)fieldNumber + values:(GPBUInt64Array *)values + tag:(uint32_t)tag; +/** + * Write a uint64_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeFixed64NoTag:(uint64_t)value; + +/** + * Write a uint32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeFixed32:(int32_t)fieldNumber value:(uint32_t)value; +/** + * Write a packed array of uint32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeFixed32Array:(int32_t)fieldNumber + values:(GPBUInt32Array *)values + tag:(uint32_t)tag; +/** + * Write a uint32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeFixed32NoTag:(uint32_t)value; + +/** + * Write a int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeSInt32:(int32_t)fieldNumber value:(int32_t)value; +/** + * Write a packed array of int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeSInt32Array:(int32_t)fieldNumber + values:(GPBInt32Array *)values + tag:(uint32_t)tag; +/** + * Write a int32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeSInt32NoTag:(int32_t)value; + +/** + * Write a int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeSInt64:(int32_t)fieldNumber value:(int64_t)value; +/** + * Write a packed array of int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeSInt64Array:(int32_t)fieldNumber + values:(GPBInt64Array *)values + tag:(uint32_t)tag; +/** + * Write a int64_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeSInt64NoTag:(int64_t)value; + +/** + * Write a int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeSFixed64:(int32_t)fieldNumber value:(int64_t)value; +/** + * Write a packed array of int64_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeSFixed64Array:(int32_t)fieldNumber + values:(GPBInt64Array *)values + tag:(uint32_t)tag; +/** + * Write a int64_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeSFixed64NoTag:(int64_t)value; + +/** + * Write a int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeSFixed32:(int32_t)fieldNumber value:(int32_t)value; +/** + * Write a packed array of int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeSFixed32Array:(int32_t)fieldNumber + values:(GPBInt32Array *)values + tag:(uint32_t)tag; +/** + * Write a int32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeSFixed32NoTag:(int32_t)value; + +/** + * Write a BOOL for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeBool:(int32_t)fieldNumber value:(BOOL)value; +/** + * Write a packed array of BOOL for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeBoolArray:(int32_t)fieldNumber + values:(GPBBoolArray *)values + tag:(uint32_t)tag; +/** + * Write a BOOL without any tag. + * + * @param value The value to write out. + **/ +- (void)writeBoolNoTag:(BOOL)value; + +/** + * Write a int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeEnum:(int32_t)fieldNumber value:(int32_t)value; +/** + * Write a packed array of int32_t for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + * @param tag The tag assigned to the values. + **/ +- (void)writeEnumArray:(int32_t)fieldNumber + values:(GPBEnumArray *)values + tag:(uint32_t)tag; +/** + * Write a int32_t without any tag. + * + * @param value The value to write out. + **/ +- (void)writeEnumNoTag:(int32_t)value; + +/** + * Write a NSString for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeString:(int32_t)fieldNumber value:(NSString *)value; +/** + * Write an array of NSString for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + **/ +- (void)writeStringArray:(int32_t)fieldNumber values:(NSArray<NSString*> *)values; +/** + * Write a NSString without any tag. + * + * @param value The value to write out. + **/ +- (void)writeStringNoTag:(NSString *)value; + +/** + * Write a GPBMessage for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeMessage:(int32_t)fieldNumber value:(GPBMessage *)value; +/** + * Write an array of GPBMessage for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + **/ +- (void)writeMessageArray:(int32_t)fieldNumber values:(NSArray<GPBMessage*> *)values; +/** + * Write a GPBMessage without any tag. + * + * @param value The value to write out. + **/ +- (void)writeMessageNoTag:(GPBMessage *)value; + +/** + * Write a NSData for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeBytes:(int32_t)fieldNumber value:(NSData *)value; +/** + * Write an array of NSData for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + **/ +- (void)writeBytesArray:(int32_t)fieldNumber values:(NSArray<NSData*> *)values; +/** + * Write a NSData without any tag. + * + * @param value The value to write out. + **/ +- (void)writeBytesNoTag:(NSData *)value; + +/** + * Write a GPBMessage for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeGroup:(int32_t)fieldNumber + value:(GPBMessage *)value; +/** + * Write an array of GPBMessage for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + **/ +- (void)writeGroupArray:(int32_t)fieldNumber values:(NSArray<GPBMessage*> *)values; +/** + * Write a GPBMessage without any tag (but does write the endGroup tag). + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeGroupNoTag:(int32_t)fieldNumber + value:(GPBMessage *)value; + +/** + * Write a GPBUnknownFieldSet for the given field number. + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeUnknownGroup:(int32_t)fieldNumber + value:(GPBUnknownFieldSet *)value; +/** + * Write an array of GPBUnknownFieldSet for the given field number. + * + * @param fieldNumber The field number assigned to the values. + * @param values The values to write out. + **/ +- (void)writeUnknownGroupArray:(int32_t)fieldNumber values:(NSArray<GPBUnknownFieldSet*> *)values; +/** + * Write a GPBUnknownFieldSet without any tag (but does write the endGroup tag). + * + * @param fieldNumber The field number assigned to the value. + * @param value The value to write out. + **/ +- (void)writeUnknownGroupNoTag:(int32_t)fieldNumber + value:(GPBUnknownFieldSet *)value; + +//%PDDM-EXPAND-END _WRITE_DECLS() + +/** +Write a MessageSet extension field to the stream. For historical reasons, +the wire format differs from normal fields. + +@param fieldNumber The extension field number to write out. +@param value The message from where to get the extension. +*/ +- (void)writeMessageSetExtension:(int32_t)fieldNumber value:(GPBMessage *)value; + +/** +Write an unparsed MessageSet extension field to the stream. For historical +reasons, the wire format differs from normal fields. + +@param fieldNumber The extension field number to write out. +@param value The raw message from where to get the extension. +*/ +- (void)writeRawMessageSetExtension:(int32_t)fieldNumber value:(NSData *)value; + +@end + +NS_ASSUME_NONNULL_END + +// Write methods for types that can be in packed arrays. +//%PDDM-DEFINE _WRITE_PACKABLE_DECLS(NAME, ARRAY_TYPE, TYPE) +//%/** +//% * Write a TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the value. +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE)value; +//%/** +//% * Write a packed array of TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the values. +//% * @param values The values to write out. +//% * @param tag The tag assigned to the values. +//% **/ +//%- (void)write##NAME##Array:(int32_t)fieldNumber +//% NAME$S values:(GPB##ARRAY_TYPE##Array *)values +//% NAME$S tag:(uint32_t)tag; +//%/** +//% * Write a TYPE without any tag. +//% * +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME##NoTag:(TYPE)value; +//% +// Write methods for types that aren't in packed arrays. +//%PDDM-DEFINE _WRITE_UNPACKABLE_DECLS(NAME, TYPE) +//%/** +//% * Write a TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the value. +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE *)value; +//%/** +//% * Write an array of TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the values. +//% * @param values The values to write out. +//% **/ +//%- (void)write##NAME##Array:(int32_t)fieldNumber values:(NSArray<##TYPE##*> *)values; +//%/** +//% * Write a TYPE without any tag. +//% * +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME##NoTag:(TYPE *)value; +//% +// Special write methods for Groups. +//%PDDM-DEFINE _WRITE_GROUP_DECLS(NAME, TYPE) +//%/** +//% * Write a TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the value. +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME:(int32_t)fieldNumber +//% NAME$S value:(TYPE *)value; +//%/** +//% * Write an array of TYPE for the given field number. +//% * +//% * @param fieldNumber The field number assigned to the values. +//% * @param values The values to write out. +//% **/ +//%- (void)write##NAME##Array:(int32_t)fieldNumber values:(NSArray<##TYPE##*> *)values; +//%/** +//% * Write a TYPE without any tag (but does write the endGroup tag). +//% * +//% * @param fieldNumber The field number assigned to the value. +//% * @param value The value to write out. +//% **/ +//%- (void)write##NAME##NoTag:(int32_t)fieldNumber +//% NAME$S value:(TYPE *)value; +//% + +// One macro to hide it all up above. +//%PDDM-DEFINE _WRITE_DECLS() +//%_WRITE_PACKABLE_DECLS(Double, Double, double) +//%_WRITE_PACKABLE_DECLS(Float, Float, float) +//%_WRITE_PACKABLE_DECLS(UInt64, UInt64, uint64_t) +//%_WRITE_PACKABLE_DECLS(Int64, Int64, int64_t) +//%_WRITE_PACKABLE_DECLS(Int32, Int32, int32_t) +//%_WRITE_PACKABLE_DECLS(UInt32, UInt32, uint32_t) +//%_WRITE_PACKABLE_DECLS(Fixed64, UInt64, uint64_t) +//%_WRITE_PACKABLE_DECLS(Fixed32, UInt32, uint32_t) +//%_WRITE_PACKABLE_DECLS(SInt32, Int32, int32_t) +//%_WRITE_PACKABLE_DECLS(SInt64, Int64, int64_t) +//%_WRITE_PACKABLE_DECLS(SFixed64, Int64, int64_t) +//%_WRITE_PACKABLE_DECLS(SFixed32, Int32, int32_t) +//%_WRITE_PACKABLE_DECLS(Bool, Bool, BOOL) +//%_WRITE_PACKABLE_DECLS(Enum, Enum, int32_t) +//%_WRITE_UNPACKABLE_DECLS(String, NSString) +//%_WRITE_UNPACKABLE_DECLS(Message, GPBMessage) +//%_WRITE_UNPACKABLE_DECLS(Bytes, NSData) +//%_WRITE_GROUP_DECLS(Group, GPBMessage) +//%_WRITE_GROUP_DECLS(UnknownGroup, GPBUnknownFieldSet) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream_PackagePrivate.h new file mode 100644 index 000000000..2e7bb4c4a --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBCodedOutputStream_PackagePrivate.h @@ -0,0 +1,126 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2016 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import "GPBCodedOutputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +CF_EXTERN_C_BEGIN + +size_t GPBComputeDoubleSize(int32_t fieldNumber, double value) + __attribute__((const)); +size_t GPBComputeFloatSize(int32_t fieldNumber, float value) + __attribute__((const)); +size_t GPBComputeUInt64Size(int32_t fieldNumber, uint64_t value) + __attribute__((const)); +size_t GPBComputeInt64Size(int32_t fieldNumber, int64_t value) + __attribute__((const)); +size_t GPBComputeInt32Size(int32_t fieldNumber, int32_t value) + __attribute__((const)); +size_t GPBComputeFixed64Size(int32_t fieldNumber, uint64_t value) + __attribute__((const)); +size_t GPBComputeFixed32Size(int32_t fieldNumber, uint32_t value) + __attribute__((const)); +size_t GPBComputeBoolSize(int32_t fieldNumber, BOOL value) + __attribute__((const)); +size_t GPBComputeStringSize(int32_t fieldNumber, NSString *value) + __attribute__((const)); +size_t GPBComputeGroupSize(int32_t fieldNumber, GPBMessage *value) + __attribute__((const)); +size_t GPBComputeUnknownGroupSize(int32_t fieldNumber, + GPBUnknownFieldSet *value) + __attribute__((const)); +size_t GPBComputeMessageSize(int32_t fieldNumber, GPBMessage *value) + __attribute__((const)); +size_t GPBComputeBytesSize(int32_t fieldNumber, NSData *value) + __attribute__((const)); +size_t GPBComputeUInt32Size(int32_t fieldNumber, uint32_t value) + __attribute__((const)); +size_t GPBComputeSFixed32Size(int32_t fieldNumber, int32_t value) + __attribute__((const)); +size_t GPBComputeSFixed64Size(int32_t fieldNumber, int64_t value) + __attribute__((const)); +size_t GPBComputeSInt32Size(int32_t fieldNumber, int32_t value) + __attribute__((const)); +size_t GPBComputeSInt64Size(int32_t fieldNumber, int64_t value) + __attribute__((const)); +size_t GPBComputeTagSize(int32_t fieldNumber) __attribute__((const)); +size_t GPBComputeWireFormatTagSize(int field_number, GPBDataType dataType) + __attribute__((const)); + +size_t GPBComputeDoubleSizeNoTag(double value) __attribute__((const)); +size_t GPBComputeFloatSizeNoTag(float value) __attribute__((const)); +size_t GPBComputeUInt64SizeNoTag(uint64_t value) __attribute__((const)); +size_t GPBComputeInt64SizeNoTag(int64_t value) __attribute__((const)); +size_t GPBComputeInt32SizeNoTag(int32_t value) __attribute__((const)); +size_t GPBComputeFixed64SizeNoTag(uint64_t value) __attribute__((const)); +size_t GPBComputeFixed32SizeNoTag(uint32_t value) __attribute__((const)); +size_t GPBComputeBoolSizeNoTag(BOOL value) __attribute__((const)); +size_t GPBComputeStringSizeNoTag(NSString *value) __attribute__((const)); +size_t GPBComputeGroupSizeNoTag(GPBMessage *value) __attribute__((const)); +size_t GPBComputeUnknownGroupSizeNoTag(GPBUnknownFieldSet *value) + __attribute__((const)); +size_t GPBComputeMessageSizeNoTag(GPBMessage *value) __attribute__((const)); +size_t GPBComputeBytesSizeNoTag(NSData *value) __attribute__((const)); +size_t GPBComputeUInt32SizeNoTag(int32_t value) __attribute__((const)); +size_t GPBComputeEnumSizeNoTag(int32_t value) __attribute__((const)); +size_t GPBComputeSFixed32SizeNoTag(int32_t value) __attribute__((const)); +size_t GPBComputeSFixed64SizeNoTag(int64_t value) __attribute__((const)); +size_t GPBComputeSInt32SizeNoTag(int32_t value) __attribute__((const)); +size_t GPBComputeSInt64SizeNoTag(int64_t value) __attribute__((const)); + +// Note that this will calculate the size of 64 bit values truncated to 32. +size_t GPBComputeSizeTSizeAsInt32NoTag(size_t value) __attribute__((const)); + +size_t GPBComputeRawVarint32Size(int32_t value) __attribute__((const)); +size_t GPBComputeRawVarint64Size(int64_t value) __attribute__((const)); + +// Note that this will calculate the size of 64 bit values truncated to 32. +size_t GPBComputeRawVarint32SizeForInteger(NSInteger value) + __attribute__((const)); + +// Compute the number of bytes that would be needed to encode a +// MessageSet extension to the stream. For historical reasons, +// the wire format differs from normal fields. +size_t GPBComputeMessageSetExtensionSize(int32_t fieldNumber, GPBMessage *value) + __attribute__((const)); + +// Compute the number of bytes that would be needed to encode an +// unparsed MessageSet extension field to the stream. For +// historical reasons, the wire format differs from normal fields. +size_t GPBComputeRawMessageSetExtensionSize(int32_t fieldNumber, NSData *value) + __attribute__((const)); + +size_t GPBComputeEnumSize(int32_t fieldNumber, int32_t value) + __attribute__((const)); + +CF_EXTERN_C_END + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor.h new file mode 100644 index 000000000..292bce137 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor.h @@ -0,0 +1,318 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBRuntimeTypes.h" + +@class GPBEnumDescriptor; +@class GPBFieldDescriptor; +@class GPBFileDescriptor; +@class GPBOneofDescriptor; + +NS_ASSUME_NONNULL_BEGIN + +/** Syntax used in the proto file. */ +typedef NS_ENUM(uint8_t, GPBFileSyntax) { + /** Unknown syntax. */ + GPBFileSyntaxUnknown = 0, + /** Proto2 syntax. */ + GPBFileSyntaxProto2 = 2, + /** Proto3 syntax. */ + GPBFileSyntaxProto3 = 3, +}; + +/** Type of proto field. */ +typedef NS_ENUM(uint8_t, GPBFieldType) { + /** Optional/required field. Only valid for proto2 fields. */ + GPBFieldTypeSingle, + /** Repeated field. */ + GPBFieldTypeRepeated, + /** Map field. */ + GPBFieldTypeMap, +}; + +/** + * Describes a proto message. + **/ +@interface GPBDescriptor : NSObject<NSCopying> + +/** Name of the message. */ +@property(nonatomic, readonly, copy) NSString *name; +/** Fields declared in the message. */ +@property(nonatomic, readonly, strong, nullable) NSArray<GPBFieldDescriptor*> *fields; +/** Oneofs declared in the message. */ +@property(nonatomic, readonly, strong, nullable) NSArray<GPBOneofDescriptor*> *oneofs; +/** Extension range declared for the message. */ +@property(nonatomic, readonly, nullable) const GPBExtensionRange *extensionRanges; +/** Number of extension ranges declared for the message. */ +@property(nonatomic, readonly) uint32_t extensionRangesCount; +/** Descriptor for the file where the message was defined. */ +@property(nonatomic, readonly, assign) GPBFileDescriptor *file; + +/** Whether the message is in wire format or not. */ +@property(nonatomic, readonly, getter=isWireFormat) BOOL wireFormat; +/** The class of this message. */ +@property(nonatomic, readonly) Class messageClass; +/** Containing message descriptor if this message is nested, or nil otherwise. */ +@property(readonly, nullable) GPBDescriptor *containingType; +/** + * Fully qualified name for this message (package.message). Can be nil if the + * value is unable to be computed. + */ +@property(readonly, nullable) NSString *fullName; + +/** + * Gets the field for the given number. + * + * @param fieldNumber The number for the field to get. + * + * @return The field descriptor for the given number, or nil if not found. + **/ +- (nullable GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber; + +/** + * Gets the field for the given name. + * + * @param name The name for the field to get. + * + * @return The field descriptor for the given name, or nil if not found. + **/ +- (nullable GPBFieldDescriptor *)fieldWithName:(NSString *)name; + +/** + * Gets the oneof for the given name. + * + * @param name The name for the oneof to get. + * + * @return The oneof descriptor for the given name, or nil if not found. + **/ +- (nullable GPBOneofDescriptor *)oneofWithName:(NSString *)name; + +@end + +/** + * Describes a proto file. + **/ +@interface GPBFileDescriptor : NSObject + +/** The package declared in the proto file. */ +@property(nonatomic, readonly, copy) NSString *package; +/** The objc prefix declared in the proto file. */ +@property(nonatomic, readonly, copy, nullable) NSString *objcPrefix; +/** The syntax of the proto file. */ +@property(nonatomic, readonly) GPBFileSyntax syntax; + +@end + +/** + * Describes a oneof field. + **/ +@interface GPBOneofDescriptor : NSObject +/** Name of the oneof field. */ +@property(nonatomic, readonly) NSString *name; +/** Fields declared in the oneof. */ +@property(nonatomic, readonly) NSArray<GPBFieldDescriptor*> *fields; + +/** + * Gets the field for the given number. + * + * @param fieldNumber The number for the field to get. + * + * @return The field descriptor for the given number, or nil if not found. + **/ +- (nullable GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber; + +/** + * Gets the field for the given name. + * + * @param name The name for the field to get. + * + * @return The field descriptor for the given name, or nil if not found. + **/ +- (nullable GPBFieldDescriptor *)fieldWithName:(NSString *)name; + +@end + +/** + * Describes a proto field. + **/ +@interface GPBFieldDescriptor : NSObject + +/** Name of the field. */ +@property(nonatomic, readonly, copy) NSString *name; +/** Number associated with the field. */ +@property(nonatomic, readonly) uint32_t number; +/** Data type contained in the field. */ +@property(nonatomic, readonly) GPBDataType dataType; +/** Whether it has a default value or not. */ +@property(nonatomic, readonly) BOOL hasDefaultValue; +/** Default value for the field. */ +@property(nonatomic, readonly) GPBGenericValue defaultValue; +/** Whether this field is required. Only valid for proto2 fields. */ +@property(nonatomic, readonly, getter=isRequired) BOOL required; +/** Whether this field is optional. */ +@property(nonatomic, readonly, getter=isOptional) BOOL optional; +/** Type of field (single, repeated, map). */ +@property(nonatomic, readonly) GPBFieldType fieldType; +/** Type of the key if the field is a map. The value's type is -fieldType. */ +@property(nonatomic, readonly) GPBDataType mapKeyDataType; +/** Whether the field is packable. */ +@property(nonatomic, readonly, getter=isPackable) BOOL packable; + +/** The containing oneof if this field is part of one, nil otherwise. */ +@property(nonatomic, readonly, assign, nullable) GPBOneofDescriptor *containingOneof; + +/** Class of the message if the field is of message type. */ +@property(nonatomic, readonly, assign, nullable) Class msgClass; + +/** Descriptor for the enum if this field is an enum. */ +@property(nonatomic, readonly, strong, nullable) GPBEnumDescriptor *enumDescriptor; + +/** + * Checks whether the given enum raw value is a valid enum value. + * + * @param value The raw enum value to check. + * + * @return YES if value is a valid enum raw value. + **/ +- (BOOL)isValidEnumValue:(int32_t)value; + +/** @return Name for the text format, or nil if not known. */ +- (nullable NSString *)textFormatName; + +@end + +/** + * Describes a proto enum. + **/ +@interface GPBEnumDescriptor : NSObject + +/** Name of the enum. */ +@property(nonatomic, readonly, copy) NSString *name; +/** Function that validates that raw values are valid enum values. */ +@property(nonatomic, readonly) GPBEnumValidationFunc enumVerifier; + +/** + * Returns the enum value name for the given raw enum. + * + * Note that there can be more than one name corresponding to a given value + * if the allow_alias option is used. + * + * @param number The raw enum value. + * + * @return The first name that matches the enum value passed, or nil if not valid. + **/ +- (nullable NSString *)enumNameForValue:(int32_t)number; + +/** + * Gets the enum raw value for the given enum name. + * + * @param outValue A pointer where the value will be set. + * @param name The enum name for which to get the raw value. + * + * @return YES if a value was copied into the pointer, NO otherwise. + **/ +- (BOOL)getValue:(nullable int32_t *)outValue forEnumName:(NSString *)name; + +/** + * Returns the text format for the given raw enum value. + * + * @param number The raw enum value. + * + * @return The first text format name which matches the enum value, or nil if not valid. + **/ +- (nullable NSString *)textFormatNameForValue:(int32_t)number; + +/** + * Gets the enum raw value for the given text format name. + * + * @param outValue A pointer where the value will be set. + * @param textFormatName The text format name for which to get the raw value. + * + * @return YES if a value was copied into the pointer, NO otherwise. + **/ +- (BOOL)getValue:(nullable int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName; + +/** + * Gets the number of defined enum names. + * + * @return Count of the number of enum names, including any aliases. + */ +@property(nonatomic, readonly) uint32_t enumNameCount; + +/** + * Gets the enum name corresponding to the given index. + * + * @param index Index into the available names. The defined range is from 0 + * to self.enumNameCount - 1. + * + * @returns The enum name at the given index, or nil if the index is out of range. + */ +- (nullable NSString *)getEnumNameForIndex:(uint32_t)index; + +/** + * Gets the enum text format name corresponding to the given index. + * + * @param index Index into the available names. The defined range is from 0 + * to self.enumNameCount - 1. + * + * @returns The text format name at the given index, or nil if the index is out of range. + */ +- (nullable NSString *)getEnumTextFormatNameForIndex:(uint32_t)index; + +@end + +/** + * Describes a proto extension. + **/ +@interface GPBExtensionDescriptor : NSObject<NSCopying> +/** Field number under which the extension is stored. */ +@property(nonatomic, readonly) uint32_t fieldNumber; +/** The containing message class, i.e. the class extended by this extension. */ +@property(nonatomic, readonly) Class containingMessageClass; +/** Data type contained in the extension. */ +@property(nonatomic, readonly) GPBDataType dataType; +/** Whether the extension is repeated. */ +@property(nonatomic, readonly, getter=isRepeated) BOOL repeated; +/** Whether the extension is packable. */ +@property(nonatomic, readonly, getter=isPackable) BOOL packable; +/** The class of the message if the extension is of message type. */ +@property(nonatomic, readonly, assign) Class msgClass; +/** The singleton name for the extension. */ +@property(nonatomic, readonly) NSString *singletonName; +/** The enum descriptor if the extension is of enum type. */ +@property(nonatomic, readonly, strong, nullable) GPBEnumDescriptor *enumDescriptor; +/** The default value for the extension. */ +@property(nonatomic, readonly, nullable) id defaultValue; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor_PackagePrivate.h new file mode 100644 index 000000000..452b3f8e7 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDescriptor_PackagePrivate.h @@ -0,0 +1,325 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This header is private to the ProtobolBuffers library and must NOT be +// included by any sources outside this library. The contents of this file are +// subject to change at any time without notice. + +#import "GPBDescriptor.h" +#import "GPBWireFormat.h" + +// Describes attributes of the field. +typedef NS_OPTIONS(uint16_t, GPBFieldFlags) { + GPBFieldNone = 0, + // These map to standard protobuf concepts. + GPBFieldRequired = 1 << 0, + GPBFieldRepeated = 1 << 1, + GPBFieldPacked = 1 << 2, + GPBFieldOptional = 1 << 3, + GPBFieldHasDefaultValue = 1 << 4, + + // Indicates the field needs custom handling for the TextFormat name, if not + // set, the name can be derived from the ObjC name. + GPBFieldTextFormatNameCustom = 1 << 6, + // Indicates the field has an enum descriptor. + GPBFieldHasEnumDescriptor = 1 << 7, + + // These are not standard protobuf concepts, they are specific to the + // Objective C runtime. + + // These bits are used to mark the field as a map and what the key + // type is. + GPBFieldMapKeyMask = 0xF << 8, + GPBFieldMapKeyInt32 = 1 << 8, + GPBFieldMapKeyInt64 = 2 << 8, + GPBFieldMapKeyUInt32 = 3 << 8, + GPBFieldMapKeyUInt64 = 4 << 8, + GPBFieldMapKeySInt32 = 5 << 8, + GPBFieldMapKeySInt64 = 6 << 8, + GPBFieldMapKeyFixed32 = 7 << 8, + GPBFieldMapKeyFixed64 = 8 << 8, + GPBFieldMapKeySFixed32 = 9 << 8, + GPBFieldMapKeySFixed64 = 10 << 8, + GPBFieldMapKeyBool = 11 << 8, + GPBFieldMapKeyString = 12 << 8, +}; + +// NOTE: The structures defined here have their members ordered to minimize +// their size. This directly impacts the size of apps since these exist per +// field/extension. + +// Describes a single field in a protobuf as it is represented as an ivar. +typedef struct GPBMessageFieldDescription { + // Name of ivar. + const char *name; + union { + const char *className; // Name for message class. + // For enums only: If EnumDescriptors are compiled in, it will be that, + // otherwise it will be the verifier. + GPBEnumDescriptorFunc enumDescFunc; + GPBEnumValidationFunc enumVerifier; + } dataTypeSpecific; + // The field number for the ivar. + uint32_t number; + // The index (in bits) into _has_storage_. + // >= 0: the bit to use for a value being set. + // = GPBNoHasBit(INT32_MAX): no storage used. + // < 0: in a oneOf, use a full int32 to record the field active. + int32_t hasIndex; + // Offset of the variable into it's structure struct. + uint32_t offset; + // Field flags. Use accessor functions below. + GPBFieldFlags flags; + // Data type of the ivar. + GPBDataType dataType; +} GPBMessageFieldDescription; + +// Fields in messages defined in a 'proto2' syntax file can provide a default +// value. This struct provides the default along with the field info. +typedef struct GPBMessageFieldDescriptionWithDefault { + // Default value for the ivar. + GPBGenericValue defaultValue; + + GPBMessageFieldDescription core; +} GPBMessageFieldDescriptionWithDefault; + +// Describes attributes of the extension. +typedef NS_OPTIONS(uint8_t, GPBExtensionOptions) { + GPBExtensionNone = 0, + // These map to standard protobuf concepts. + GPBExtensionRepeated = 1 << 0, + GPBExtensionPacked = 1 << 1, + GPBExtensionSetWireFormat = 1 << 2, +}; + +// An extension +typedef struct GPBExtensionDescription { + GPBGenericValue defaultValue; + const char *singletonName; + const char *extendedClass; + const char *messageOrGroupClassName; + GPBEnumDescriptorFunc enumDescriptorFunc; + int32_t fieldNumber; + GPBDataType dataType; + GPBExtensionOptions options; +} GPBExtensionDescription; + +typedef NS_OPTIONS(uint32_t, GPBDescriptorInitializationFlags) { + GPBDescriptorInitializationFlag_None = 0, + GPBDescriptorInitializationFlag_FieldsWithDefault = 1 << 0, + GPBDescriptorInitializationFlag_WireFormat = 1 << 1, +}; + +@interface GPBDescriptor () { + @package + NSArray *fields_; + NSArray *oneofs_; + uint32_t storageSize_; +} + +// fieldDescriptions have to be long lived, they are held as raw pointers. ++ (instancetype) + allocDescriptorForClass:(Class)messageClass + rootClass:(Class)rootClass + file:(GPBFileDescriptor *)file + fields:(void *)fieldDescriptions + fieldCount:(uint32_t)fieldCount + storageSize:(uint32_t)storageSize + flags:(GPBDescriptorInitializationFlags)flags; + +- (instancetype)initWithClass:(Class)messageClass + file:(GPBFileDescriptor *)file + fields:(NSArray *)fields + storageSize:(uint32_t)storage + wireFormat:(BOOL)wireFormat; + +// Called right after init to provide extra information to avoid init having +// an explosion of args. These pointers are recorded, so they are expected +// to live for the lifetime of the app. +- (void)setupOneofs:(const char **)oneofNames + count:(uint32_t)count + firstHasIndex:(int32_t)firstHasIndex; +- (void)setupExtraTextInfo:(const char *)extraTextFormatInfo; +- (void)setupExtensionRanges:(const GPBExtensionRange *)ranges count:(int32_t)count; +- (void)setupContainingMessageClassName:(const char *)msgClassName; +- (void)setupMessageClassNameSuffix:(NSString *)suffix; + +@end + +@interface GPBFileDescriptor () +- (instancetype)initWithPackage:(NSString *)package + objcPrefix:(NSString *)objcPrefix + syntax:(GPBFileSyntax)syntax; +- (instancetype)initWithPackage:(NSString *)package + syntax:(GPBFileSyntax)syntax; +@end + +@interface GPBOneofDescriptor () { + @package + const char *name_; + NSArray *fields_; + SEL caseSel_; +} +// name must be long lived. +- (instancetype)initWithName:(const char *)name fields:(NSArray *)fields; +@end + +@interface GPBFieldDescriptor () { + @package + GPBMessageFieldDescription *description_; + GPB_UNSAFE_UNRETAINED GPBOneofDescriptor *containingOneof_; + + SEL getSel_; + SEL setSel_; + SEL hasOrCountSel_; // *Count for map<>/repeated fields, has* otherwise. + SEL setHasSel_; +} + +// Single initializer +// description has to be long lived, it is held as a raw pointer. +- (instancetype)initWithFieldDescription:(void *)description + includesDefault:(BOOL)includesDefault + syntax:(GPBFileSyntax)syntax; +@end + +@interface GPBEnumDescriptor () +// valueNames, values and extraTextFormatInfo have to be long lived, they are +// held as raw pointers. ++ (instancetype) + allocDescriptorForName:(NSString *)name + valueNames:(const char *)valueNames + values:(const int32_t *)values + count:(uint32_t)valueCount + enumVerifier:(GPBEnumValidationFunc)enumVerifier; ++ (instancetype) + allocDescriptorForName:(NSString *)name + valueNames:(const char *)valueNames + values:(const int32_t *)values + count:(uint32_t)valueCount + enumVerifier:(GPBEnumValidationFunc)enumVerifier + extraTextFormatInfo:(const char *)extraTextFormatInfo; + +- (instancetype)initWithName:(NSString *)name + valueNames:(const char *)valueNames + values:(const int32_t *)values + count:(uint32_t)valueCount + enumVerifier:(GPBEnumValidationFunc)enumVerifier; +@end + +@interface GPBExtensionDescriptor () { + @package + GPBExtensionDescription *description_; +} +@property(nonatomic, readonly) GPBWireFormat wireType; + +// For repeated extensions, alternateWireType is the wireType with the opposite +// value for the packable property. i.e. - if the extension was marked packed +// it would be the wire type for unpacked; if the extension was marked unpacked, +// it would be the wire type for packed. +@property(nonatomic, readonly) GPBWireFormat alternateWireType; + +// description has to be long lived, it is held as a raw pointer. +- (instancetype)initWithExtensionDescription: + (GPBExtensionDescription *)description; +- (NSComparisonResult)compareByFieldNumber:(GPBExtensionDescriptor *)other; +@end + +CF_EXTERN_C_BEGIN + +// Direct access is use for speed, to avoid even internally declaring things +// read/write, etc. The warning is enabled in the project to ensure code calling +// protos can turn on -Wdirect-ivar-access without issues. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdirect-ivar-access" + +GPB_INLINE BOOL GPBFieldIsMapOrArray(GPBFieldDescriptor *field) { + return (field->description_->flags & + (GPBFieldRepeated | GPBFieldMapKeyMask)) != 0; +} + +GPB_INLINE GPBDataType GPBGetFieldDataType(GPBFieldDescriptor *field) { + return field->description_->dataType; +} + +GPB_INLINE int32_t GPBFieldHasIndex(GPBFieldDescriptor *field) { + return field->description_->hasIndex; +} + +GPB_INLINE uint32_t GPBFieldNumber(GPBFieldDescriptor *field) { + return field->description_->number; +} + +#pragma clang diagnostic pop + +uint32_t GPBFieldTag(GPBFieldDescriptor *self); + +// For repeated fields, alternateWireType is the wireType with the opposite +// value for the packable property. i.e. - if the field was marked packed it +// would be the wire type for unpacked; if the field was marked unpacked, it +// would be the wire type for packed. +uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self); + +GPB_INLINE BOOL GPBHasPreservingUnknownEnumSemantics(GPBFileSyntax syntax) { + return syntax == GPBFileSyntaxProto3; +} + +GPB_INLINE BOOL GPBExtensionIsRepeated(GPBExtensionDescription *description) { + return (description->options & GPBExtensionRepeated) != 0; +} + +GPB_INLINE BOOL GPBExtensionIsPacked(GPBExtensionDescription *description) { + return (description->options & GPBExtensionPacked) != 0; +} + +GPB_INLINE BOOL GPBExtensionIsWireFormat(GPBExtensionDescription *description) { + return (description->options & GPBExtensionSetWireFormat) != 0; +} + +// Helper for compile time assets. +#ifndef GPBInternalCompileAssert + #if __has_feature(c_static_assert) || __has_extension(c_static_assert) + #define GPBInternalCompileAssert(test, msg) _Static_assert((test), #msg) + #else + // Pre-Xcode 7 support. + #define GPBInternalCompileAssertSymbolInner(line, msg) GPBInternalCompileAssert ## line ## __ ## msg + #define GPBInternalCompileAssertSymbol(line, msg) GPBInternalCompileAssertSymbolInner(line, msg) + #define GPBInternalCompileAssert(test, msg) \ + typedef char GPBInternalCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ] + #endif // __has_feature(c_static_assert) || __has_extension(c_static_assert) +#endif // GPBInternalCompileAssert + +// Sanity check that there isn't padding between the field description +// structures with and without a default. +GPBInternalCompileAssert(sizeof(GPBMessageFieldDescriptionWithDefault) == + (sizeof(GPBGenericValue) + + sizeof(GPBMessageFieldDescription)), + DescriptionsWithDefault_different_size_than_expected); + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary.h new file mode 100644 index 000000000..d00b5b311 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary.h @@ -0,0 +1,5770 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBRuntimeTypes.h" + +// Note on naming: for the classes holding numeric values, a more natural +// naming of the method might be things like "-valueForKey:", +// "-setValue:forKey:"; etc. But those selectors are also defined by Key Value +// Coding (KVC) as categories on NSObject. So "overloading" the selectors with +// other meanings can cause warnings (based on compiler settings), but more +// importantly, some of those selector get called as KVC breaks up keypaths. +// So if those selectors are used, using KVC will compile cleanly, but could +// crash as it invokes those selectors with the wrong types of arguments. + +NS_ASSUME_NONNULL_BEGIN + +//%PDDM-EXPAND DECLARE_DICTIONARIES() +// This block of code is generated, do not edit it directly. + +#pragma mark - UInt32 -> UInt32 + +/** + * Class used for map fields of <uint32_t, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32UInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32UInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32UInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Int32 + +/** + * Class used for map fields of <uint32_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32Int32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32Int32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32Int32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> UInt64 + +/** + * Class used for map fields of <uint32_t, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32UInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32UInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32UInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Int64 + +/** + * Class used for map fields of <uint32_t, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32Int64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32Int64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32Int64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Bool + +/** + * Class used for map fields of <uint32_t, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32BoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32BoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32BoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Float + +/** + * Class used for map fields of <uint32_t, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32FloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32FloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32FloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Double + +/** + * Class used for map fields of <uint32_t, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32DoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32DoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32DoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Enum + +/** + * Class used for map fields of <uint32_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32EnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBUInt32EnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBUInt32EnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(uint32_t)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt32 -> Object + +/** + * Class used for map fields of <uint32_t, ObjectType> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt32ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param objects The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects + forKeys:(const uint32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt32ObjectDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Fetches the object stored under the given key. + * + * @param key Key under which the value is stored, if present. + * + * @return The object if found, nil otherwise. + **/ +- (ObjectType)objectForKey:(uint32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **object**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndObjectsUsingBlock: + (void (NS_NOESCAPE ^)(uint32_t key, ObjectType object, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt32ObjectDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param object The value to set. + * @param key The key under which to store the value. + **/ +- (void)setObject:(ObjectType)object forKey:(uint32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeObjectForKey:(uint32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> UInt32 + +/** + * Class used for map fields of <int32_t, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32UInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32UInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32UInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Int32 + +/** + * Class used for map fields of <int32_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32Int32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32Int32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32Int32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> UInt64 + +/** + * Class used for map fields of <int32_t, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32UInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32UInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32UInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Int64 + +/** + * Class used for map fields of <int32_t, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32Int64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32Int64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32Int64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Bool + +/** + * Class used for map fields of <int32_t, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32BoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32BoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32BoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Float + +/** + * Class used for map fields of <int32_t, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32FloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32FloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32FloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Double + +/** + * Class used for map fields of <int32_t, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32DoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32DoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32DoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Enum + +/** + * Class used for map fields of <int32_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32EnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBInt32EnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBInt32EnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(int32_t)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int32 -> Object + +/** + * Class used for map fields of <int32_t, ObjectType> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt32ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param objects The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects + forKeys:(const int32_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt32ObjectDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Fetches the object stored under the given key. + * + * @param key Key under which the value is stored, if present. + * + * @return The object if found, nil otherwise. + **/ +- (ObjectType)objectForKey:(int32_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **object**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndObjectsUsingBlock: + (void (NS_NOESCAPE ^)(int32_t key, ObjectType object, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt32ObjectDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param object The value to set. + * @param key The key under which to store the value. + **/ +- (void)setObject:(ObjectType)object forKey:(int32_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeObjectForKey:(int32_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> UInt32 + +/** + * Class used for map fields of <uint64_t, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64UInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64UInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64UInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Int32 + +/** + * Class used for map fields of <uint64_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64Int32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64Int32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64Int32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> UInt64 + +/** + * Class used for map fields of <uint64_t, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64UInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64UInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64UInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Int64 + +/** + * Class used for map fields of <uint64_t, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64Int64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64Int64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64Int64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Bool + +/** + * Class used for map fields of <uint64_t, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64BoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64BoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64BoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Float + +/** + * Class used for map fields of <uint64_t, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64FloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64FloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64FloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Double + +/** + * Class used for map fields of <uint64_t, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64DoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64DoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64DoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Enum + +/** + * Class used for map fields of <uint64_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64EnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBUInt64EnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBUInt64EnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(uint64_t)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - UInt64 -> Object + +/** + * Class used for map fields of <uint64_t, ObjectType> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBUInt64ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param objects The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects + forKeys:(const uint64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBUInt64ObjectDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Fetches the object stored under the given key. + * + * @param key Key under which the value is stored, if present. + * + * @return The object if found, nil otherwise. + **/ +- (ObjectType)objectForKey:(uint64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **object**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndObjectsUsingBlock: + (void (NS_NOESCAPE ^)(uint64_t key, ObjectType object, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBUInt64ObjectDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param object The value to set. + * @param key The key under which to store the value. + **/ +- (void)setObject:(ObjectType)object forKey:(uint64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeObjectForKey:(uint64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> UInt32 + +/** + * Class used for map fields of <int64_t, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64UInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64UInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64UInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Int32 + +/** + * Class used for map fields of <int64_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64Int32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64Int32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64Int32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> UInt64 + +/** + * Class used for map fields of <int64_t, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64UInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64UInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64UInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Int64 + +/** + * Class used for map fields of <int64_t, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64Int64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64Int64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64Int64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Bool + +/** + * Class used for map fields of <int64_t, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64BoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64BoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64BoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Float + +/** + * Class used for map fields of <int64_t, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64FloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64FloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64FloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Double + +/** + * Class used for map fields of <int64_t, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64DoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64DoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64DoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Enum + +/** + * Class used for map fields of <int64_t, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64EnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBInt64EnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBInt64EnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(int64_t)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Int64 -> Object + +/** + * Class used for map fields of <int64_t, ObjectType> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBInt64ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param objects The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects + forKeys:(const int64_t [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBInt64ObjectDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Fetches the object stored under the given key. + * + * @param key Key under which the value is stored, if present. + * + * @return The object if found, nil otherwise. + **/ +- (ObjectType)objectForKey:(int64_t)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **object**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndObjectsUsingBlock: + (void (NS_NOESCAPE ^)(int64_t key, ObjectType object, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBInt64ObjectDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param object The value to set. + * @param key The key under which to store the value. + **/ +- (void)setObject:(ObjectType)object forKey:(int64_t)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeObjectForKey:(int64_t)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> UInt32 + +/** + * Class used for map fields of <BOOL, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolUInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolUInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolUInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Int32 + +/** + * Class used for map fields of <BOOL, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> UInt64 + +/** + * Class used for map fields of <BOOL, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolUInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolUInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolUInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Int64 + +/** + * Class used for map fields of <BOOL, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Bool + +/** + * Class used for map fields of <BOOL, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolBoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolBoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolBoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Float + +/** + * Class used for map fields of <BOOL, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolFloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolFloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolFloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Double + +/** + * Class used for map fields of <BOOL, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolDoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolDoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolDoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Enum + +/** + * Class used for map fields of <BOOL, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolEnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBBoolEnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBBoolEnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(BOOL)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - Bool -> Object + +/** + * Class used for map fields of <BOOL, ObjectType> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBBoolObjectDictionary<__covariant ObjectType> : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param objects The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects + forKeys:(const BOOL [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBBoolObjectDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Fetches the object stored under the given key. + * + * @param key Key under which the value is stored, if present. + * + * @return The object if found, nil otherwise. + **/ +- (ObjectType)objectForKey:(BOOL)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **object**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndObjectsUsingBlock: + (void (NS_NOESCAPE ^)(BOOL key, ObjectType object, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBBoolObjectDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param object The value to set. + * @param key The key under which to store the value. + **/ +- (void)setObject:(ObjectType)object forKey:(BOOL)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeObjectForKey:(BOOL)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> UInt32 + +/** + * Class used for map fields of <NSString, uint32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringUInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringUInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt32sUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, uint32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringUInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt32:(uint32_t)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt32ForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Int32 + +/** + * Class used for map fields of <NSString, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringInt32Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt32s:(const int32_t [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringInt32Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt32:(nullable int32_t *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt32sUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, int32_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringInt32Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt32:(int32_t)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt32ForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> UInt64 + +/** + * Class used for map fields of <NSString, uint64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringUInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringUInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndUInt64sUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, uint64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringUInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setUInt64:(uint64_t)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeUInt64ForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Int64 + +/** + * Class used for map fields of <NSString, int64_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringInt64Dictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithInt64s:(const int64_t [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringInt64Dictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getInt64:(nullable int64_t *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndInt64sUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, int64_t value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringInt64Dictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setInt64:(int64_t)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeInt64ForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Bool + +/** + * Class used for map fields of <NSString, BOOL> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringBoolDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithBools:(const BOOL [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringBoolDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getBool:(nullable BOOL *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndBoolsUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, BOOL value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringBoolDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setBool:(BOOL)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeBoolForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Float + +/** + * Class used for map fields of <NSString, float> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringFloatDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithFloats:(const float [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringFloatDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getFloat:(nullable float *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndFloatsUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, float value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringFloatDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setFloat:(float)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeFloatForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Double + +/** + * Class used for map fields of <NSString, double> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringDoubleDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Initializes this dictionary, copying the given values and keys. + * + * @param values The values to be placed in this dictionary. + * @param keys The keys under which to store the values. + * @param count The number of elements to copy into the dictionary. + * + * @return A newly initialized dictionary with a copy of the values and keys. + **/ +- (instancetype)initWithDoubles:(const double [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes this dictionary, copying the entries from the given dictionary. + * + * @param dictionary Dictionary containing the entries to add to this dictionary. + * + * @return A newly initialized dictionary with the entries of the given dictionary. + **/ +- (instancetype)initWithDictionary:(GPBStringDoubleDictionary *)dictionary; + +/** + * Initializes this dictionary with the requested capacity. + * + * @param numItems Number of items needed for this dictionary. + * + * @return A newly initialized dictionary with the requested capacity. + **/ +- (instancetype)initWithCapacity:(NSUInteger)numItems; + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getDouble:(nullable double *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndDoublesUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, double value, BOOL *stop))block; + +/** + * Adds the keys and values from another dictionary. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addEntriesFromDictionary:(GPBStringDoubleDictionary *)otherDictionary; + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setDouble:(double)value forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeDoubleForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +#pragma mark - String -> Enum + +/** + * Class used for map fields of <NSString, int32_t> + * values. This performs better than boxing into NSNumbers in NSDictionaries. + * + * @note This class is not meant to be subclassed. + **/ +@interface GPBStringEnumDictionary : NSObject <NSCopying> + +/** Number of entries stored in this dictionary. */ +@property(nonatomic, readonly) NSUInteger count; +/** The validation function to check if the enums are valid. */ +@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; + +/** + * Initializes a dictionary with the given validation function. + * + * @param func The enum validation function for the dictionary. + * + * @return A newly initialized dictionary. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; + +/** + * Initializes a dictionary with the entries given. + * + * @param func The enum validation function for the dictionary. + * @param values The raw enum values values to be placed in the dictionary. + * @param keys The keys under which to store the values. + * @param count The number of entries to store in the dictionary. + * + * @return A newly initialized dictionary with the keys and values in it. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + rawValues:(const int32_t [__nullable])values + forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys + count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a dictionary with the entries from the given. + * dictionary. + * + * @param dictionary Dictionary containing the entries to add to the dictionary. + * + * @return A newly initialized dictionary with the entries from the given + * dictionary in it. + **/ +- (instancetype)initWithDictionary:(GPBStringEnumDictionary *)dictionary; + +/** + * Initializes a dictionary with the given capacity. + * + * @param func The enum validation function for the dictionary. + * @param numItems Capacity needed for the dictionary. + * + * @return A newly initialized dictionary with the given capacity. + **/ +- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func + capacity:(NSUInteger)numItems; + +// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +// is not a valid enumerator as defined by validationFunc. If the actual value is +// desired, use "raw" version of the method. + +/** + * Gets the value for the given key. + * + * @param value Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getEnum:(nullable int32_t *)value forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **value**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndEnumsUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, int32_t value, BOOL *stop))block; + +/** + * Gets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param rawValue Pointer into which the value will be set, if found. + * @param key Key under which the value is stored, if present. + * + * @return YES if the key was found and the value was copied, NO otherwise. + **/ +- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(NSString *)key; + +/** + * Enumerates the keys and values on this dictionary with the given block. + * + * @note This method bypass the validationFunc to enable the access of values that + * were not known at the time the binary was compiled. + * + * @param block The block to enumerate with. + * **key**: The key for the current entry. + * **rawValue**: The value for the current entry + * **stop**: A pointer to a boolean that when set stops the enumeration. + **/ +- (void)enumerateKeysAndRawValuesUsingBlock: + (void (NS_NOESCAPE ^)(NSString *key, int32_t rawValue, BOOL *stop))block; + +/** + * Adds the keys and raw enum values from another dictionary. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param otherDictionary Dictionary containing entries to be added to this + * dictionary. + **/ +- (void)addRawEntriesFromDictionary:(GPBStringEnumDictionary *)otherDictionary; + +// If value is not a valid enumerator as defined by validationFunc, these +// methods will assert in debug, and will log in release and assign the value +// to the default value. Use the rawValue methods below to assign non enumerator +// values. + +/** + * Sets the value for the given key. + * + * @param value The value to set. + * @param key The key under which to store the value. + **/ +- (void)setEnum:(int32_t)value forKey:(NSString *)key; + +/** + * Sets the raw enum value for the given key. + * + * @note This method bypass the validationFunc to enable the setting of values that + * were not known at the time the binary was compiled. + * + * @param rawValue The raw enum value to set. + * @param key The key under which to store the raw enum value. + **/ +- (void)setRawValue:(int32_t)rawValue forKey:(NSString *)key; + +/** + * Removes the entry for the given key. + * + * @param aKey Key to be removed from this dictionary. + **/ +- (void)removeEnumForKey:(NSString *)aKey; + +/** + * Removes all entries in this dictionary. + **/ +- (void)removeAll; + +@end + +//%PDDM-EXPAND-END DECLARE_DICTIONARIES() + +NS_ASSUME_NONNULL_END + +//%PDDM-DEFINE DECLARE_DICTIONARIES() +//%DICTIONARY_INTERFACES_FOR_POD_KEY(UInt32, uint32_t) +//%DICTIONARY_INTERFACES_FOR_POD_KEY(Int32, int32_t) +//%DICTIONARY_INTERFACES_FOR_POD_KEY(UInt64, uint64_t) +//%DICTIONARY_INTERFACES_FOR_POD_KEY(Int64, int64_t) +//%DICTIONARY_INTERFACES_FOR_POD_KEY(Bool, BOOL) +//%DICTIONARY_POD_INTERFACES_FOR_KEY(String, NSString, *, OBJECT) +//%PDDM-DEFINE DICTIONARY_INTERFACES_FOR_POD_KEY(KEY_NAME, KEY_TYPE) +//%DICTIONARY_POD_INTERFACES_FOR_KEY(KEY_NAME, KEY_TYPE, , POD) +//%DICTIONARY_POD_KEY_TO_OBJECT_INTERFACE(KEY_NAME, KEY_TYPE, Object, ObjectType) +//%PDDM-DEFINE DICTIONARY_POD_INTERFACES_FOR_KEY(KEY_NAME, KEY_TYPE, KisP, KHELPER) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, UInt32, uint32_t) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Int32, int32_t) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, UInt64, uint64_t) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Int64, int64_t) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Bool, BOOL) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Float, float) +//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Double, double) +//%DICTIONARY_KEY_TO_ENUM_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Enum, int32_t) +//%PDDM-DEFINE DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE) +//%DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, POD, VALUE_NAME, value) +//%PDDM-DEFINE DICTIONARY_POD_KEY_TO_OBJECT_INTERFACE(KEY_NAME, KEY_TYPE, VALUE_NAME, VALUE_TYPE) +//%DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, , POD, VALUE_NAME, VALUE_TYPE, OBJECT, Object, object) +//%PDDM-DEFINE VALUE_FOR_KEY_POD(KEY_TYPE, VALUE_TYPE, VNAME) +//%/** +//% * Gets the value for the given key. +//% * +//% * @param value Pointer into which the value will be set, if found. +//% * @param key Key under which the value is stored, if present. +//% * +//% * @return YES if the key was found and the value was copied, NO otherwise. +//% **/ +//%- (BOOL)get##VNAME##:(nullable VALUE_TYPE *)value forKey:(KEY_TYPE)key; +//%PDDM-DEFINE VALUE_FOR_KEY_OBJECT(KEY_TYPE, VALUE_TYPE, VNAME) +//%/** +//% * Fetches the object stored under the given key. +//% * +//% * @param key Key under which the value is stored, if present. +//% * +//% * @return The object if found, nil otherwise. +//% **/ +//%- (VALUE_TYPE)objectForKey:(KEY_TYPE)key; +//%PDDM-DEFINE VALUE_FOR_KEY_Enum(KEY_TYPE, VALUE_TYPE, VNAME) +//%VALUE_FOR_KEY_POD(KEY_TYPE, VALUE_TYPE, VNAME) +//%PDDM-DEFINE ARRAY_ARG_MODIFIERPOD() +// Nothing +//%PDDM-DEFINE ARRAY_ARG_MODIFIEREnum() +// Nothing +//%PDDM-DEFINE ARRAY_ARG_MODIFIEROBJECT() +//%__nonnull GPB_UNSAFE_UNRETAINED ## +//%PDDM-DEFINE DICTIONARY_CLASS_DECLPOD(KEY_NAME, VALUE_NAME, VALUE_TYPE) +//%GPB##KEY_NAME##VALUE_NAME##Dictionary +//%PDDM-DEFINE DICTIONARY_CLASS_DECLEnum(KEY_NAME, VALUE_NAME, VALUE_TYPE) +//%GPB##KEY_NAME##VALUE_NAME##Dictionary +//%PDDM-DEFINE DICTIONARY_CLASS_DECLOBJECT(KEY_NAME, VALUE_NAME, VALUE_TYPE) +//%GPB##KEY_NAME##VALUE_NAME##Dictionary<__covariant VALUE_TYPE> +//%PDDM-DEFINE DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR) +//%#pragma mark - KEY_NAME -> VALUE_NAME +//% +//%/** +//% * Class used for map fields of <##KEY_TYPE##, ##VALUE_TYPE##> +//% * values. This performs better than boxing into NSNumbers in NSDictionaries. +//% * +//% * @note This class is not meant to be subclassed. +//% **/ +//%@interface DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) : NSObject <NSCopying> +//% +//%/** Number of entries stored in this dictionary. */ +//%@property(nonatomic, readonly) NSUInteger count; +//% +//%/** +//% * Initializes this dictionary, copying the given values and keys. +//% * +//% * @param ##VNAME_VAR##s The values to be placed in this dictionary. +//% * @param keys ##VNAME_VAR$S## The keys under which to store the values. +//% * @param count ##VNAME_VAR$S## The number of elements to copy into the dictionary. +//% * +//% * @return A newly initialized dictionary with a copy of the values and keys. +//% **/ +//%- (instancetype)initWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])##VNAME_VAR##s +//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys +//% ##VNAME$S## count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; +//% +//%/** +//% * Initializes this dictionary, copying the entries from the given dictionary. +//% * +//% * @param dictionary Dictionary containing the entries to add to this dictionary. +//% * +//% * @return A newly initialized dictionary with the entries of the given dictionary. +//% **/ +//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary; +//% +//%/** +//% * Initializes this dictionary with the requested capacity. +//% * +//% * @param numItems Number of items needed for this dictionary. +//% * +//% * @return A newly initialized dictionary with the requested capacity. +//% **/ +//%- (instancetype)initWithCapacity:(NSUInteger)numItems; +//% +//%DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR) +//% +//%/** +//% * Adds the keys and values from another dictionary. +//% * +//% * @param otherDictionary Dictionary containing entries to be added to this +//% * dictionary. +//% **/ +//%- (void)addEntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary; +//% +//%DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR) +//% +//%@end +//% + +//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE) +//%DICTIONARY_KEY_TO_ENUM_INTERFACE2(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, Enum) +//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_INTERFACE2(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, VHELPER) +//%#pragma mark - KEY_NAME -> VALUE_NAME +//% +//%/** +//% * Class used for map fields of <##KEY_TYPE##, ##VALUE_TYPE##> +//% * values. This performs better than boxing into NSNumbers in NSDictionaries. +//% * +//% * @note This class is not meant to be subclassed. +//% **/ +//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary : NSObject <NSCopying> +//% +//%/** Number of entries stored in this dictionary. */ +//%@property(nonatomic, readonly) NSUInteger count; +//%/** The validation function to check if the enums are valid. */ +//%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; +//% +//%/** +//% * Initializes a dictionary with the given validation function. +//% * +//% * @param func The enum validation function for the dictionary. +//% * +//% * @return A newly initialized dictionary. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; +//% +//%/** +//% * Initializes a dictionary with the entries given. +//% * +//% * @param func The enum validation function for the dictionary. +//% * @param values The raw enum values values to be placed in the dictionary. +//% * @param keys The keys under which to store the values. +//% * @param count The number of entries to store in the dictionary. +//% * +//% * @return A newly initialized dictionary with the keys and values in it. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])values +//% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys +//% count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; +//% +//%/** +//% * Initializes a dictionary with the entries from the given. +//% * dictionary. +//% * +//% * @param dictionary Dictionary containing the entries to add to the dictionary. +//% * +//% * @return A newly initialized dictionary with the entries from the given +//% * dictionary in it. +//% **/ +//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary; +//% +//%/** +//% * Initializes a dictionary with the given capacity. +//% * +//% * @param func The enum validation function for the dictionary. +//% * @param numItems Capacity needed for the dictionary. +//% * +//% * @return A newly initialized dictionary with the given capacity. +//% **/ +//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func +//% capacity:(NSUInteger)numItems; +//% +//%// These will return kGPBUnrecognizedEnumeratorValue if the value for the key +//%// is not a valid enumerator as defined by validationFunc. If the actual value is +//%// desired, use "raw" version of the method. +//% +//%DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, Enum, value) +//% +//%/** +//% * Gets the raw enum value for the given key. +//% * +//% * @note This method bypass the validationFunc to enable the access of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param rawValue Pointer into which the value will be set, if found. +//% * @param key Key under which the value is stored, if present. +//% * +//% * @return YES if the key was found and the value was copied, NO otherwise. +//% **/ +//%- (BOOL)getRawValue:(nullable VALUE_TYPE *)rawValue forKey:(KEY_TYPE##KisP$S##KisP)key; +//% +//%/** +//% * Enumerates the keys and values on this dictionary with the given block. +//% * +//% * @note This method bypass the validationFunc to enable the access of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param block The block to enumerate with. +//% * **key**: The key for the current entry. +//% * **rawValue**: The value for the current entry +//% * **stop**: A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateKeysAndRawValuesUsingBlock: +//% (void (NS_NOESCAPE ^)(KEY_TYPE KisP##key, VALUE_TYPE rawValue, BOOL *stop))block; +//% +//%/** +//% * Adds the keys and raw enum values from another dictionary. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param otherDictionary Dictionary containing entries to be added to this +//% * dictionary. +//% **/ +//%- (void)addRawEntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary; +//% +//%// If value is not a valid enumerator as defined by validationFunc, these +//%// methods will assert in debug, and will log in release and assign the value +//%// to the default value. Use the rawValue methods below to assign non enumerator +//%// values. +//% +//%DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, Enum, value) +//% +//%@end +//% + +//%PDDM-DEFINE DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR) +//%VALUE_FOR_KEY_##VHELPER(KEY_TYPE##KisP$S##KisP, VALUE_TYPE, VNAME) +//% +//%/** +//% * Enumerates the keys and values on this dictionary with the given block. +//% * +//% * @param block The block to enumerate with. +//% * **key**: ##VNAME_VAR$S## The key for the current entry. +//% * **VNAME_VAR**: The value for the current entry +//% * **stop**: ##VNAME_VAR$S## A pointer to a boolean that when set stops the enumeration. +//% **/ +//%- (void)enumerateKeysAnd##VNAME##sUsingBlock: +//% (void (NS_NOESCAPE ^)(KEY_TYPE KisP##key, VALUE_TYPE VNAME_VAR, BOOL *stop))block; + +//%PDDM-DEFINE DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR) +//%/** +//% * Sets the value for the given key. +//% * +//% * @param ##VNAME_VAR The value to set. +//% * @param key ##VNAME_VAR$S## The key under which to store the value. +//% **/ +//%- (void)set##VNAME##:(VALUE_TYPE)##VNAME_VAR forKey:(KEY_TYPE##KisP$S##KisP)key; +//%DICTIONARY_EXTRA_MUTABLE_METHODS_##VHELPER(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE) +//%/** +//% * Removes the entry for the given key. +//% * +//% * @param aKey Key to be removed from this dictionary. +//% **/ +//%- (void)remove##VNAME##ForKey:(KEY_TYPE##KisP$S##KisP)aKey; +//% +//%/** +//% * Removes all entries in this dictionary. +//% **/ +//%- (void)removeAll; + +//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_POD(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE) +// Empty +//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_OBJECT(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE) +// Empty +//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_Enum(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE) +//% +//%/** +//% * Sets the raw enum value for the given key. +//% * +//% * @note This method bypass the validationFunc to enable the setting of values that +//% * were not known at the time the binary was compiled. +//% * +//% * @param rawValue The raw enum value to set. +//% * @param key The key under which to store the raw enum value. +//% **/ +//%- (void)setRawValue:(VALUE_TYPE)rawValue forKey:(KEY_TYPE##KisP$S##KisP)key; +//% diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary_PackagePrivate.h new file mode 100644 index 000000000..7b921e8ec --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBDictionary_PackagePrivate.h @@ -0,0 +1,488 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBDictionary.h" + +@class GPBCodedInputStream; +@class GPBCodedOutputStream; +@class GPBExtensionRegistry; +@class GPBFieldDescriptor; + +@protocol GPBDictionaryInternalsProtocol +- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field; +- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream + asField:(GPBFieldDescriptor *)field; +- (void)setGPBGenericValue:(GPBGenericValue *)value + forGPBGenericValueKey:(GPBGenericValue *)key; +- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block; +@end + +//%PDDM-DEFINE DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(KEY_NAME) +//%DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Object, Object) +//%PDDM-DEFINE DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt32, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int32, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt64, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int64, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Bool, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Float, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Double, Basic) +//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Enum, Enum) + +//%PDDM-DEFINE DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, VALUE_NAME, HELPER) +//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary () <GPBDictionaryInternalsProtocol> { +//% @package +//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +//%} +//%EXTRA_DICTIONARY_PRIVATE_INTERFACES_##HELPER()@end +//% + +//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Basic() +// Empty +//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Object() +//%- (BOOL)isInitialized; +//%- (instancetype)deepCopyWithZone:(NSZone *)zone +//% __attribute__((ns_returns_retained)); +//% +//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Enum() +//%- (NSData *)serializedDataForUnknownValue:(int32_t)value +//% forKey:(GPBGenericValue *)key +//% keyDataType:(GPBDataType)keyDataType; +//% + +//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt32) +// This block of code is generated, do not edit it directly. + +@interface GPBUInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32BoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32FloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt32EnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +@interface GPBUInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (BOOL)isInitialized; +- (instancetype)deepCopyWithZone:(NSZone *)zone + __attribute__((ns_returns_retained)); +@end + +//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int32) +// This block of code is generated, do not edit it directly. + +@interface GPBInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32BoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32FloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt32EnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +@interface GPBInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (BOOL)isInitialized; +- (instancetype)deepCopyWithZone:(NSZone *)zone + __attribute__((ns_returns_retained)); +@end + +//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt64) +// This block of code is generated, do not edit it directly. + +@interface GPBUInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64BoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64FloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBUInt64EnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +@interface GPBUInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (BOOL)isInitialized; +- (instancetype)deepCopyWithZone:(NSZone *)zone + __attribute__((ns_returns_retained)); +@end + +//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int64) +// This block of code is generated, do not edit it directly. + +@interface GPBInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64BoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64FloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBInt64EnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +@interface GPBInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (BOOL)isInitialized; +- (instancetype)deepCopyWithZone:(NSZone *)zone + __attribute__((ns_returns_retained)); +@end + +//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Bool) +// This block of code is generated, do not edit it directly. + +@interface GPBBoolUInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolUInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolBoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolFloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolDoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBBoolEnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +@interface GPBBoolObjectDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (BOOL)isInitialized; +- (instancetype)deepCopyWithZone:(NSZone *)zone + __attribute__((ns_returns_retained)); +@end + +//%PDDM-EXPAND DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(String) +// This block of code is generated, do not edit it directly. + +@interface GPBStringUInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringInt32Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringUInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringInt64Dictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringBoolDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringFloatDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringDoubleDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +@interface GPBStringEnumDictionary () <GPBDictionaryInternalsProtocol> { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +- (NSData *)serializedDataForUnknownValue:(int32_t)value + forKey:(GPBGenericValue *)key + keyDataType:(GPBDataType)keyDataType; +@end + +//%PDDM-EXPAND-END (6 expansions) + +#pragma mark - NSDictionary Subclass + +@interface GPBAutocreatedDictionary : NSMutableDictionary { + @package + GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; +} +@end + +#pragma mark - Helpers + +CF_EXTERN_C_BEGIN + +// Helper to compute size when an NSDictionary is used for the map instead +// of a custom type. +size_t GPBDictionaryComputeSizeInternalHelper(NSDictionary *dict, + GPBFieldDescriptor *field); + +// Helper to write out when an NSDictionary is used for the map instead +// of a custom type. +void GPBDictionaryWriteToStreamInternalHelper( + GPBCodedOutputStream *outputStream, NSDictionary *dict, + GPBFieldDescriptor *field); + +// Helper to check message initialization when an NSDictionary is used for +// the map instead of a custom type. +BOOL GPBDictionaryIsInitializedInternalHelper(NSDictionary *dict, + GPBFieldDescriptor *field); + +// Helper to read a map instead. +void GPBDictionaryReadEntry(id mapDictionary, GPBCodedInputStream *stream, + GPBExtensionRegistry *registry, + GPBFieldDescriptor *field, + GPBMessage *parentMessage); + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionInternals.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionInternals.h new file mode 100644 index 000000000..2b980aefa --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionInternals.h @@ -0,0 +1,50 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBDescriptor.h" + +@class GPBCodedInputStream; +@class GPBCodedOutputStream; +@class GPBExtensionRegistry; + +void GPBExtensionMergeFromInputStream(GPBExtensionDescriptor *extension, + BOOL isPackedOnStream, + GPBCodedInputStream *input, + GPBExtensionRegistry *extensionRegistry, + GPBMessage *message); + +size_t GPBComputeExtensionSerializedSizeIncludingTag( + GPBExtensionDescriptor *extension, id value); + +void GPBWriteExtensionValueToOutputStream(GPBExtensionDescriptor *extension, + id value, + GPBCodedOutputStream *output); diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionRegistry.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionRegistry.h new file mode 100644 index 000000000..d79632d28 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBExtensionRegistry.h @@ -0,0 +1,87 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +@class GPBDescriptor; +@class GPBExtensionDescriptor; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A table of known extensions, searchable by name or field number. When + * parsing a protocol message that might have extensions, you must provide a + * GPBExtensionRegistry in which you have registered any extensions that you + * want to be able to parse. Otherwise, those extensions will just be treated + * like unknown fields. + * + * The *Root classes provide `+extensionRegistry` for the extensions defined + * in a given file *and* all files it imports. You can also create a + * GPBExtensionRegistry, and merge those registries to handle parsing + * extensions defined from non overlapping files. + * + * ``` + * GPBExtensionRegistry *registry = [[MyProtoFileRoot extensionRegistry] copy]; + * [registry addExtension:[OtherMessage neededExtension]]; // Not in MyProtoFile + * NSError *parseError; + * MyMessage *msg = [MyMessage parseData:data extensionRegistry:registry error:&parseError]; + * ``` + **/ +@interface GPBExtensionRegistry : NSObject<NSCopying> + +/** + * Adds the given GPBExtensionDescriptor to this registry. + * + * @param extension The extension description to add. + **/ +- (void)addExtension:(GPBExtensionDescriptor *)extension; + +/** + * Adds all the extensions from another registry to this registry. + * + * @param registry The registry to merge into this registry. + **/ +- (void)addExtensions:(GPBExtensionRegistry *)registry; + +/** + * Looks for the extension registered for the given field number on a given + * GPBDescriptor. + * + * @param descriptor The descriptor to look for a registered extension on. + * @param fieldNumber The field number of the extension to look for. + * + * @return The registered GPBExtensionDescriptor or nil if none was found. + **/ +- (nullable GPBExtensionDescriptor *)extensionForDescriptor:(GPBDescriptor *)descriptor + fieldNumber:(NSInteger)fieldNumber; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage.h new file mode 100644 index 000000000..276740d2f --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage.h @@ -0,0 +1,470 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBBootstrap.h" + +@class GPBDescriptor; +@class GPBCodedInputStream; +@class GPBCodedOutputStream; +@class GPBExtensionDescriptor; +@class GPBExtensionRegistry; +@class GPBFieldDescriptor; +@class GPBUnknownFieldSet; + +NS_ASSUME_NONNULL_BEGIN + +CF_EXTERN_C_BEGIN + +/** NSError domain used for errors. */ +extern NSString *const GPBMessageErrorDomain; + +/** Error codes for NSErrors originated in GPBMessage. */ +typedef NS_ENUM(NSInteger, GPBMessageErrorCode) { + /** Uncategorized error. */ + GPBMessageErrorCodeOther = -100, + /** Message couldn't be serialized because it is missing required fields. */ + GPBMessageErrorCodeMissingRequiredField = -101, +}; + +/** + * Key under which the GPBMessage error's reason is stored inside the userInfo + * dictionary. + **/ +extern NSString *const GPBErrorReasonKey; + +CF_EXTERN_C_END + +/** + * Base class that each generated message subclasses from. + * + * @note @c NSCopying support is a "deep copy", in that all sub objects are + * copied. Just like you wouldn't want a UIView/NSView trying to + * exist in two places, you don't want a sub message to be a property + * property of two other messages. + * + * @note While the class support NSSecureCoding, if the message has any + * extensions, they will end up reloaded in @c unknownFields as there is + * no way for the @c NSCoding plumbing to pass through a + * @c GPBExtensionRegistry. To support extensions, instead of passing the + * calls off to the Message, simple store the result of @c data, and then + * when loading, fetch the data and use + * @c +parseFromData:extensionRegistry:error: to provide an extension + * registry. + **/ +@interface GPBMessage : NSObject<NSSecureCoding, NSCopying> + +// If you add an instance method/property to this class that may conflict with +// fields declared in protos, you need to update objective_helpers.cc. The main +// cases are methods that take no arguments, or setFoo:/hasFoo: type methods. + +/** + * The set of unknown fields for this message. + * + * Only messages from proto files declared with "proto2" syntax support unknown + * fields. For "proto3" syntax, any unknown fields found while parsing are + * dropped. + **/ +@property(nonatomic, copy, nullable) GPBUnknownFieldSet *unknownFields; + +/** + * Whether the message, along with all submessages, have the required fields + * set. This is only applicable for files declared with "proto2" syntax, as + * there are no required fields for "proto3" syntax. + **/ +@property(nonatomic, readonly, getter=isInitialized) BOOL initialized; + +/** + * @return An autoreleased message with the default values set. + **/ ++ (instancetype)message; + +/** + * Creates a new instance by parsing the provided data. This method should be + * sent to the generated message class that the data should be interpreted as. + * If there is an error the method returns nil and the error is returned in + * errorPtr (when provided). + * + * @note In DEBUG builds, the parsed message is checked to be sure all required + * fields were provided, and the parse will fail if some are missing. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param data The data to parse. + * @param errorPtr An optional error pointer to fill in with a failure reason if + * the data can not be parsed. + * + * @return A new instance of the generated class. + **/ ++ (nullable instancetype)parseFromData:(NSData *)data error:(NSError **)errorPtr; + +/** + * Creates a new instance by parsing the data. This method should be sent to + * the generated message class that the data should be interpreted as. If + * there is an error the method returns nil and the error is returned in + * errorPtr (when provided). + * + * @note In DEBUG builds, the parsed message is checked to be sure all required + * fields were provided, and the parse will fail if some are missing. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param data The data to parse. + * @param extensionRegistry The extension registry to use to look up extensions. + * @param errorPtr An optional error pointer to fill in with a failure + * reason if the data can not be parsed. + * + * @return A new instance of the generated class. + **/ ++ (nullable instancetype)parseFromData:(NSData *)data + extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry + error:(NSError **)errorPtr; + +/** + * Creates a new instance by parsing the data from the given input stream. This + * method should be sent to the generated message class that the data should + * be interpreted as. If there is an error the method returns nil and the error + * is returned in errorPtr (when provided). + * + * @note In DEBUG builds, the parsed message is checked to be sure all required + * fields were provided, and the parse will fail if some are missing. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param input The stream to read data from. + * @param extensionRegistry The extension registry to use to look up extensions. + * @param errorPtr An optional error pointer to fill in with a failure + * reason if the data can not be parsed. + * + * @return A new instance of the generated class. + **/ ++ (nullable instancetype)parseFromCodedInputStream:(GPBCodedInputStream *)input + extensionRegistry: + (nullable GPBExtensionRegistry *)extensionRegistry + error:(NSError **)errorPtr; + +/** + * Creates a new instance by parsing the data from the given input stream. This + * method should be sent to the generated message class that the data should + * be interpreted as. If there is an error the method returns nil and the error + * is returned in errorPtr (when provided). + * + * @note Unlike the parseFrom... methods, this never checks to see if all of + * the required fields are set. So this method can be used to reload + * messages that may not be complete. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param input The stream to read data from. + * @param extensionRegistry The extension registry to use to look up extensions. + * @param errorPtr An optional error pointer to fill in with a failure + * reason if the data can not be parsed. + * + * @return A new instance of the generated class. + **/ ++ (nullable instancetype)parseDelimitedFromCodedInputStream:(GPBCodedInputStream *)input + extensionRegistry: + (nullable GPBExtensionRegistry *)extensionRegistry + error:(NSError **)errorPtr; + +/** + * Initializes an instance by parsing the data. This method should be sent to + * the generated message class that the data should be interpreted as. If + * there is an error the method returns nil and the error is returned in + * errorPtr (when provided). + * + * @note In DEBUG builds, the parsed message is checked to be sure all required + * fields were provided, and the parse will fail if some are missing. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param data The data to parse. + * @param errorPtr An optional error pointer to fill in with a failure reason if + * the data can not be parsed. + * + * @return An initialized instance of the generated class. + **/ +- (nullable instancetype)initWithData:(NSData *)data error:(NSError **)errorPtr; + +/** + * Initializes an instance by parsing the data. This method should be sent to + * the generated message class that the data should be interpreted as. If + * there is an error the method returns nil and the error is returned in + * errorPtr (when provided). + * + * @note In DEBUG builds, the parsed message is checked to be sure all required + * fields were provided, and the parse will fail if some are missing. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param data The data to parse. + * @param extensionRegistry The extension registry to use to look up extensions. + * @param errorPtr An optional error pointer to fill in with a failure + * reason if the data can not be parsed. + * + * @return An initialized instance of the generated class. + **/ +- (nullable instancetype)initWithData:(NSData *)data + extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry + error:(NSError **)errorPtr; + +/** + * Initializes an instance by parsing the data from the given input stream. This + * method should be sent to the generated message class that the data should + * be interpreted as. If there is an error the method returns nil and the error + * is returned in errorPtr (when provided). + * + * @note Unlike the parseFrom... methods, this never checks to see if all of + * the required fields are set. So this method can be used to reload + * messages that may not be complete. + * + * @note The errors returned are likely coming from the domain and codes listed + * at the top of this file and GPBCodedInputStream.h. + * + * @param input The stream to read data from. + * @param extensionRegistry The extension registry to use to look up extensions. + * @param errorPtr An optional error pointer to fill in with a failure + * reason if the data can not be parsed. + * + * @return An initialized instance of the generated class. + **/ +- (nullable instancetype)initWithCodedInputStream:(GPBCodedInputStream *)input + extensionRegistry: + (nullable GPBExtensionRegistry *)extensionRegistry + error:(NSError **)errorPtr; + +/** + * Parses the given data as this message's class, and merges those values into + * this message. + * + * @param data The binary representation of the message to merge. + * @param extensionRegistry The extension registry to use to look up extensions. + * + * @exception GPBCodedInputStreamException Exception thrown when parsing was + * unsuccessful. + **/ +- (void)mergeFromData:(NSData *)data + extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry; + +/** + * Merges the fields from another message (of the same type) into this + * message. + * + * @param other Message to merge into this message. + **/ +- (void)mergeFrom:(GPBMessage *)other; + +/** + * Writes out the message to the given coded output stream. + * + * @param output The coded output stream into which to write the message. + * + * @note This can raise the GPBCodedOutputStreamException_* exceptions. + * + **/ +- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output; + +/** + * Writes out the message to the given output stream. + * + * @param output The output stream into which to write the message. + * + * @note This can raise the GPBCodedOutputStreamException_* exceptions. + **/ +- (void)writeToOutputStream:(NSOutputStream *)output; + +/** + * Writes out a varint for the message size followed by the the message to + * the given output stream. + * + * @param output The coded output stream into which to write the message. + * + * @note This can raise the GPBCodedOutputStreamException_* exceptions. + **/ +- (void)writeDelimitedToCodedOutputStream:(GPBCodedOutputStream *)output; + +/** + * Writes out a varint for the message size followed by the the message to + * the given output stream. + * + * @param output The output stream into which to write the message. + * + * @note This can raise the GPBCodedOutputStreamException_* exceptions. + **/ +- (void)writeDelimitedToOutputStream:(NSOutputStream *)output; + +/** + * Serializes the message to an NSData. + * + * If there is an error while generating the data, nil is returned. + * + * @note This value is not cached, so if you are using it repeatedly, cache + * it yourself. + * + * @note In DEBUG ONLY, the message is also checked for all required field, + * if one is missing, nil will be returned. + * + * @return The binary representation of the message. + **/ +- (nullable NSData *)data; + +/** + * Serializes a varint with the message size followed by the message data, + * returning that as an NSData. + * + * @note This value is not cached, so if you are using it repeatedly, it is + * recommended to keep a local copy. + * + * @return The binary representation of the size along with the message. + **/ +- (NSData *)delimitedData; + +/** + * Calculates the size of the object if it were serialized. + * + * This is not a cached value. If you are following a pattern like this: + * + * ``` + * size_t size = [aMsg serializedSize]; + * NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)]; + * [foo writeSize:size]; + * [foo appendData:[aMsg data]]; + * ``` + * + * you would be better doing: + * + * ``` + * NSData *data = [aMsg data]; + * NSUInteger size = [aMsg length]; + * NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)]; + * [foo writeSize:size]; + * [foo appendData:data]; + * ``` + * + * @return The size of the message in it's binary representation. + **/ +- (size_t)serializedSize; + +/** + * @return The descriptor for the message class. + **/ ++ (GPBDescriptor *)descriptor; + +/** + * Return the descriptor for the message. + **/ +- (GPBDescriptor *)descriptor; + +/** + * @return An array with the extension descriptors that are currently set on the + * message. + **/ +- (NSArray *)extensionsCurrentlySet; + +/** + * Checks whether there is an extension set on the message which matches the + * given extension descriptor. + * + * @param extension Extension descriptor to check if it's set on the message. + * + * @return Whether the extension is currently set on the message. + **/ +- (BOOL)hasExtension:(GPBExtensionDescriptor *)extension; + +/* + * Fetches the given extension's value for this message. + * + * Extensions use boxed values (NSNumbers) for PODs and NSMutableArrays for + * repeated fields. If the extension is a Message one will be auto created for + * you and returned similar to fields. + * + * @param extension The extension descriptor of the extension to fetch. + * + * @return The extension matching the given descriptor, or nil if none found. + **/ +- (nullable id)getExtension:(GPBExtensionDescriptor *)extension; + +/** + * Sets the given extension's value for this message. This only applies for + * single field extensions (i.e. - not repeated fields). + * + * Extensions use boxed values (NSNumbers). + * + * @param extension The extension descriptor under which to set the value. + * @param value The value to be set as the extension. + **/ +- (void)setExtension:(GPBExtensionDescriptor *)extension + value:(nullable id)value; + +/** + * Adds the given value to the extension for this message. This only applies + * to repeated field extensions. If the field is a repeated POD type, the value + * should be an NSNumber. + * + * @param extension The extension descriptor under which to add the value. + * @param value The value to be added to the repeated extension. + **/ +- (void)addExtension:(GPBExtensionDescriptor *)extension value:(id)value; + +/** + * Replaces the value at the given index with the given value for the extension + * on this message. This only applies to repeated field extensions. If the field + * is a repeated POD type, the value is should be an NSNumber. + * + * @param extension The extension descriptor under which to replace the value. + * @param index The index of the extension to be replaced. + * @param value The value to be replaced in the repeated extension. + **/ +- (void)setExtension:(GPBExtensionDescriptor *)extension + index:(NSUInteger)index + value:(id)value; + +/** + * Clears the given extension for this message. + * + * @param extension The extension descriptor to be cleared from this message. + **/ +- (void)clearExtension:(GPBExtensionDescriptor *)extension; + +/** + * Resets all of the fields of this message to their default values. + **/ +- (void)clear; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage_PackagePrivate.h new file mode 100644 index 000000000..ca10983b3 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBMessage_PackagePrivate.h @@ -0,0 +1,124 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This header is private to the ProtobolBuffers library and must NOT be +// included by any sources outside this library. The contents of this file are +// subject to change at any time without notice. + +#import "GPBMessage.h" + +// TODO: Remove this import. Older generated code use the OSAtomic* apis, +// so anyone that hasn't regenerated says building by having this. After +// enough time has passed, this likely can be removed as folks should have +// regenerated. +#import <libkern/OSAtomic.h> + +#import "GPBBootstrap.h" + +typedef struct GPBMessage_Storage { + uint32_t _has_storage_[0]; +} GPBMessage_Storage; + +typedef struct GPBMessage_Storage *GPBMessage_StoragePtr; + +@interface GPBMessage () { + @package + // NOTE: Because of the +allocWithZone code using NSAllocateObject(), + // this structure should ideally always be kept pointer aligned where the + // real storage starts is also pointer aligned. The compiler/runtime already + // do this, but it may not be documented. + + // A pointer to the actual fields of the subclasses. The actual structure + // pointed to by this pointer will depend on the subclass. + // All of the actual structures will start the same as + // GPBMessage_Storage with _has_storage__ as the first field. + // Kept public because static functions need to access it. + GPBMessage_StoragePtr messageStorage_; +} + +// Gets an extension value without autocreating the result if not found. (i.e. +// returns nil if the extension is not set) +- (id)getExistingExtension:(GPBExtensionDescriptor *)extension; + +// Parses a message of this type from the input and merges it with this +// message. +// +// Warning: This does not verify that all required fields are present in +// the input message. +// Note: The caller should call +// -[CodedInputStream checkLastTagWas:] after calling this to +// verify that the last tag seen was the appropriate end-group tag, +// or zero for EOF. +// NOTE: This will throw if there is an error while parsing. +- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input + extensionRegistry:(GPBExtensionRegistry *)extensionRegistry; + +// Parses the next delimited message of this type from the input and merges it +// with this message. +- (void)mergeDelimitedFromCodedInputStream:(GPBCodedInputStream *)input + extensionRegistry: + (GPBExtensionRegistry *)extensionRegistry; + +- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data; + +@end + +CF_EXTERN_C_BEGIN + + +// Call this before using the readOnlySemaphore_. This ensures it is created only once. +void GPBPrepareReadOnlySemaphore(GPBMessage *self); + +// Returns a new instance that was automatically created by |autocreator| for +// its field |field|. +GPBMessage *GPBCreateMessageWithAutocreator(Class msgClass, + GPBMessage *autocreator, + GPBFieldDescriptor *field) + __attribute__((ns_returns_retained)); + +// Returns whether |message| autocreated this message. This is NO if the message +// was not autocreated by |message| or if it has been mutated since +// autocreation. +BOOL GPBWasMessageAutocreatedBy(GPBMessage *message, GPBMessage *parent); + +// Call this when you mutate a message. It will cause the message to become +// visible to its autocreator. +void GPBBecomeVisibleToAutocreator(GPBMessage *self); + +// Call this when an array/dictionary is mutated so the parent message that +// autocreated it can react. +void GPBAutocreatedArrayModified(GPBMessage *self, id array); +void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary); + +// Clear the autocreator, if any. Asserts if the autocreator still has an +// autocreated reference to this message. +void GPBClearMessageAutocreator(GPBMessage *self); + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers.h new file mode 100644 index 000000000..68d8854eb --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers.h @@ -0,0 +1,76 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import "GPBBootstrap.h" + +#import "GPBArray.h" +#import "GPBCodedInputStream.h" +#import "GPBCodedOutputStream.h" +#import "GPBDescriptor.h" +#import "GPBDictionary.h" +#import "GPBExtensionRegistry.h" +#import "GPBMessage.h" +#import "GPBRootObject.h" +#import "GPBUnknownField.h" +#import "GPBUnknownFieldSet.h" +#import "GPBUtilities.h" +#import "GPBWellKnownTypes.h" +#import "GPBWireFormat.h" + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +// Well-known proto types +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/Any.pbobjc.h> + #import <Protobuf/Api.pbobjc.h> + #import <Protobuf/Duration.pbobjc.h> + #import <Protobuf/Empty.pbobjc.h> + #import <Protobuf/FieldMask.pbobjc.h> + #import <Protobuf/SourceContext.pbobjc.h> + #import <Protobuf/Struct.pbobjc.h> + #import <Protobuf/Timestamp.pbobjc.h> + #import <Protobuf/Type.pbobjc.h> + #import <Protobuf/Wrappers.pbobjc.h> +#else + #import "google/protobuf/Any.pbobjc.h" + #import "google/protobuf/Api.pbobjc.h" + #import "google/protobuf/Duration.pbobjc.h" + #import "google/protobuf/Empty.pbobjc.h" + #import "google/protobuf/FieldMask.pbobjc.h" + #import "google/protobuf/SourceContext.pbobjc.h" + #import "google/protobuf/Struct.pbobjc.h" + #import "google/protobuf/Timestamp.pbobjc.h" + #import "google/protobuf/Type.pbobjc.h" + #import "google/protobuf/Wrappers.pbobjc.h" +#endif diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers_RuntimeSupport.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers_RuntimeSupport.h new file mode 100644 index 000000000..04dde620a --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBProtocolBuffers_RuntimeSupport.h @@ -0,0 +1,40 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This header is meant to only be used by the generated source, it should not +// be included in code using protocol buffers. + +#import "GPBBootstrap.h" + +#import "GPBDescriptor_PackagePrivate.h" +#import "GPBExtensionInternals.h" +#import "GPBMessage_PackagePrivate.h" +#import "GPBRootObject_PackagePrivate.h" +#import "GPBUtilities_PackagePrivate.h" diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject.h new file mode 100644 index 000000000..d2e2aebfc --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject.h @@ -0,0 +1,52 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +@class GPBExtensionRegistry; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Every generated proto file defines a local "Root" class that exposes a + * GPBExtensionRegistry for all the extensions defined by that file and + * the files it depends on. + **/ +@interface GPBRootObject : NSObject + +/** + * @return An extension registry for the given file and all the files it depends + * on. + **/ ++ (GPBExtensionRegistry *)extensionRegistry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject_PackagePrivate.h new file mode 100644 index 000000000..3c8f09c89 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRootObject_PackagePrivate.h @@ -0,0 +1,46 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBRootObject.h" + +@class GPBExtensionDescriptor; + +@interface GPBRootObject () + +// Globally register. ++ (void)globallyRegisterExtension:(GPBExtensionDescriptor *)field; + +@end + +// Returns YES if the selector was resolved and added to the class, +// NO otherwise. +BOOL GPBResolveExtensionClassMethod(Class self, SEL sel); diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRuntimeTypes.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRuntimeTypes.h new file mode 100644 index 000000000..4d552060b --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBRuntimeTypes.h @@ -0,0 +1,144 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBBootstrap.h" + +@class GPBEnumDescriptor; +@class GPBMessage; +@class GPBInt32Array; + +/** + * Verifies that a given value can be represented by an enum type. + * */ +typedef BOOL (*GPBEnumValidationFunc)(int32_t); + +/** + * Fetches an EnumDescriptor. + * */ +typedef GPBEnumDescriptor *(*GPBEnumDescriptorFunc)(void); + +/** + * Magic value used at runtime to indicate an enum value that wasn't know at + * compile time. + * */ +enum { + kGPBUnrecognizedEnumeratorValue = (int32_t)0xFBADBEEF, +}; + +/** + * A union for storing all possible Protobuf values. Note that owner is + * responsible for memory management of object types. + * */ +typedef union { + BOOL valueBool; + int32_t valueInt32; + int64_t valueInt64; + uint32_t valueUInt32; + uint64_t valueUInt64; + float valueFloat; + double valueDouble; + GPB_UNSAFE_UNRETAINED NSData *valueData; + GPB_UNSAFE_UNRETAINED NSString *valueString; + GPB_UNSAFE_UNRETAINED GPBMessage *valueMessage; + int32_t valueEnum; +} GPBGenericValue; + +/** + * Enum listing the possible data types that a field can contain. + * + * @note Do not change the order of this enum (or add things to it) without + * thinking about it very carefully. There are several things that depend + * on the order. + * */ +typedef NS_ENUM(uint8_t, GPBDataType) { + /** Field contains boolean value(s). */ + GPBDataTypeBool = 0, + /** Field contains unsigned 4 byte value(s). */ + GPBDataTypeFixed32, + /** Field contains signed 4 byte value(s). */ + GPBDataTypeSFixed32, + /** Field contains float value(s). */ + GPBDataTypeFloat, + /** Field contains unsigned 8 byte value(s). */ + GPBDataTypeFixed64, + /** Field contains signed 8 byte value(s). */ + GPBDataTypeSFixed64, + /** Field contains double value(s). */ + GPBDataTypeDouble, + /** + * Field contains variable length value(s). Inefficient for encoding negative + * numbers – if your field is likely to have negative values, use + * GPBDataTypeSInt32 instead. + **/ + GPBDataTypeInt32, + /** + * Field contains variable length value(s). Inefficient for encoding negative + * numbers – if your field is likely to have negative values, use + * GPBDataTypeSInt64 instead. + **/ + GPBDataTypeInt64, + /** Field contains signed variable length integer value(s). */ + GPBDataTypeSInt32, + /** Field contains signed variable length integer value(s). */ + GPBDataTypeSInt64, + /** Field contains unsigned variable length integer value(s). */ + GPBDataTypeUInt32, + /** Field contains unsigned variable length integer value(s). */ + GPBDataTypeUInt64, + /** Field contains an arbitrary sequence of bytes. */ + GPBDataTypeBytes, + /** Field contains UTF-8 encoded or 7-bit ASCII text. */ + GPBDataTypeString, + /** Field contains message type(s). */ + GPBDataTypeMessage, + /** Field contains message type(s). */ + GPBDataTypeGroup, + /** Field contains enum value(s). */ + GPBDataTypeEnum, +}; + +enum { + /** + * A count of the number of types in GPBDataType. Separated out from the + * GPBDataType enum to avoid warnings regarding not handling GPBDataType_Count + * in switch statements. + **/ + GPBDataType_Count = GPBDataTypeEnum + 1 +}; + +/** An extension range. */ +typedef struct GPBExtensionRange { + /** Inclusive. */ + uint32_t start; + /** Exclusive. */ + uint32_t end; +} GPBExtensionRange; diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField.h new file mode 100644 index 000000000..5b96023b1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField.h @@ -0,0 +1,99 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +@class GPBCodedOutputStream; +@class GPBUInt32Array; +@class GPBUInt64Array; +@class GPBUnknownFieldSet; + +NS_ASSUME_NONNULL_BEGIN +/** + * Store an unknown field. These are used in conjunction with + * GPBUnknownFieldSet. + **/ +@interface GPBUnknownField : NSObject<NSCopying> + +/** Initialize a field with the given number. */ +- (instancetype)initWithNumber:(int32_t)number; + +/** The field number the data is stored under. */ +@property(nonatomic, readonly, assign) int32_t number; + +/** An array of varint values for this field. */ +@property(nonatomic, readonly, strong) GPBUInt64Array *varintList; + +/** An array of fixed32 values for this field. */ +@property(nonatomic, readonly, strong) GPBUInt32Array *fixed32List; + +/** An array of fixed64 values for this field. */ +@property(nonatomic, readonly, strong) GPBUInt64Array *fixed64List; + +/** An array of data values for this field. */ +@property(nonatomic, readonly, strong) NSArray<NSData*> *lengthDelimitedList; + +/** An array of groups of values for this field. */ +@property(nonatomic, readonly, strong) NSArray<GPBUnknownFieldSet*> *groupList; + +/** + * Add a value to the varintList. + * + * @param value The value to add. + **/ +- (void)addVarint:(uint64_t)value; +/** + * Add a value to the fixed32List. + * + * @param value The value to add. + **/ +- (void)addFixed32:(uint32_t)value; +/** + * Add a value to the fixed64List. + * + * @param value The value to add. + **/ +- (void)addFixed64:(uint64_t)value; +/** + * Add a value to the lengthDelimitedList. + * + * @param value The value to add. + **/ +- (void)addLengthDelimited:(NSData *)value; +/** + * Add a value to the groupList. + * + * @param value The value to add. + **/ +- (void)addGroup:(GPBUnknownFieldSet *)value; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet.h new file mode 100644 index 000000000..1b5f24f39 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet.h @@ -0,0 +1,82 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +@class GPBUnknownField; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A collection of unknown fields. Fields parsed from the binary representation + * of a message that are unknown end up in an instance of this set. This only + * applies for files declared with the "proto2" syntax. Files declared with the + * "proto3" syntax discard the unknown values. + **/ +@interface GPBUnknownFieldSet : NSObject<NSCopying> + +/** + * Tests to see if the given field number has a value. + * + * @param number The field number to check. + * + * @return YES if there is an unknown field for the given field number. + **/ +- (BOOL)hasField:(int32_t)number; + +/** + * Fetches the GPBUnknownField for the given field number. + * + * @param number The field number to look up. + * + * @return The GPBUnknownField or nil if none found. + **/ +- (nullable GPBUnknownField *)getField:(int32_t)number; + +/** + * @return The number of fields in this set. + **/ +- (NSUInteger)countOfFields; + +/** + * Adds the given field to the set. + * + * @param field The field to add to the set. + **/ +- (void)addField:(GPBUnknownField *)field; + +/** + * @return An array of the GPBUnknownFields sorted by the field numbers. + **/ +- (NSArray<GPBUnknownField *> *)sortedFields; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet_PackagePrivate.h new file mode 100644 index 000000000..e27127ad1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownFieldSet_PackagePrivate.h @@ -0,0 +1,61 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBUnknownFieldSet.h" + +@class GPBCodedOutputStream; +@class GPBCodedInputStream; + +@interface GPBUnknownFieldSet () + ++ (BOOL)isFieldTag:(int32_t)tag; + +- (NSData *)data; + +- (size_t)serializedSize; +- (size_t)serializedSizeAsMessageSet; + +- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output; +- (void)writeAsMessageSetTo:(GPBCodedOutputStream *)output; + +- (void)mergeUnknownFields:(GPBUnknownFieldSet *)other; + +- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input; +- (void)mergeFromData:(NSData *)data; + +- (void)mergeVarintField:(int32_t)number value:(int32_t)value; +- (BOOL)mergeFieldFrom:(int32_t)tag input:(GPBCodedInputStream *)input; +- (void)mergeMessageSetMessage:(int32_t)number data:(NSData *)messageData; + +- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data; + +@end diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField_PackagePrivate.h new file mode 100644 index 000000000..2b4c78951 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUnknownField_PackagePrivate.h @@ -0,0 +1,47 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBUnknownField.h" + +@class GPBCodedOutputStream; + +@interface GPBUnknownField () + +- (void)writeToOutput:(GPBCodedOutputStream *)output; +- (size_t)serializedSize; + +- (void)writeAsMessageSetExtensionToOutput:(GPBCodedOutputStream *)output; +- (size_t)serializedSizeAsMessageSetExtension; + +- (void)mergeFromField:(GPBUnknownField *)other; + +@end diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities.h new file mode 100644 index 000000000..5464dfb35 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities.h @@ -0,0 +1,539 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBArray.h" +#import "GPBMessage.h" +#import "GPBRuntimeTypes.h" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +/** + * Generates a string that should be a valid "TextFormat" for the C++ version + * of Protocol Buffers. + * + * @param message The message to generate from. + * @param lineIndent A string to use as the prefix for all lines generated. Can + * be nil if no extra indent is needed. + * + * @return An NSString with the TextFormat of the message. + **/ +NSString *GPBTextFormatForMessage(GPBMessage *message, + NSString * __nullable lineIndent); + +/** + * Generates a string that should be a valid "TextFormat" for the C++ version + * of Protocol Buffers. + * + * @param unknownSet The unknown field set to generate from. + * @param lineIndent A string to use as the prefix for all lines generated. Can + * be nil if no extra indent is needed. + * + * @return An NSString with the TextFormat of the unknown field set. + **/ +NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknownSet, + NSString * __nullable lineIndent); + +/** + * Checks if the given field number is set on a message. + * + * @param self The message to check. + * @param fieldNumber The field number to check. + * + * @return YES if the field number is set on the given message. + **/ +BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber); + +/** + * Checks if the given field is set on a message. + * + * @param self The message to check. + * @param field The field to check. + * + * @return YES if the field is set on the given message. + **/ +BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Clears the given field for the given message. + * + * @param self The message for which to clear the field. + * @param field The field to clear. + **/ +void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field); + +//%PDDM-EXPAND GPB_ACCESSORS() +// This block of code is generated, do not edit it directly. + + +// +// Get/Set a given field from/to a message. +// + +// Single Fields + +/** + * Gets the value of a bytes field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a bytes field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData *value); + +/** + * Gets the value of a string field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a string field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSString *value); + +/** + * Gets the value of a message field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a message field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value); + +/** + * Gets the value of a group field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a group field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value); + +/** + * Gets the value of a bool field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a bool field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL value); + +/** + * Gets the value of an int32 field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of an int32 field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_t value); + +/** + * Gets the value of an uint32 field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of an uint32 field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint32_t value); + +/** + * Gets the value of an int64 field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of an int64 field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_t value); + +/** + * Gets the value of an uint64 field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of an uint64 field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint64_t value); + +/** + * Gets the value of a float field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a float field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float value); + +/** + * Gets the value of a double field. + * + * @param self The message from which to get the field. + * @param field The field to get. + **/ +double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a double field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The to set in the field. + **/ +void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, double value); + +/** + * Gets the given enum field of a message. For proto3, if the value isn't a + * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned. + * GPBGetMessageRawEnumField will bypass the check and return whatever value + * was set. + * + * @param self The message from which to get the field. + * @param field The field to get. + * + * @return The enum value for the given field. + **/ +int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Set the given enum field of a message. You can only set values that are + * members of the enum. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The enum value to set in the field. + **/ +void GPBSetMessageEnumField(GPBMessage *self, + GPBFieldDescriptor *field, + int32_t value); + +/** + * Get the given enum field of a message. No check is done to ensure the value + * was defined in the enum. + * + * @param self The message from which to get the field. + * @param field The field to get. + * + * @return The raw enum value for the given field. + **/ +int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Set the given enum field of a message. You can set the value to anything, + * even a value that is not a member of the enum. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param value The raw enum value to set in the field. + **/ +void GPBSetMessageRawEnumField(GPBMessage *self, + GPBFieldDescriptor *field, + int32_t value); + +// Repeated Fields + +/** + * Gets the value of a repeated field. + * + * @param self The message from which to get the field. + * @param field The repeated field to get. + * + * @return A GPB*Array or an NSMutableArray based on the field's type. + **/ +id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a repeated field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param array A GPB*Array or NSMutableArray based on the field's type. + **/ +void GPBSetMessageRepeatedField(GPBMessage *self, + GPBFieldDescriptor *field, + id array); + +// Map Fields + +/** + * Gets the value of a map<> field. + * + * @param self The message from which to get the field. + * @param field The repeated field to get. + * + * @return A GPB*Dictionary or NSMutableDictionary based on the field's type. + **/ +id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); + +/** + * Sets the value of a map<> field. + * + * @param self The message into which to set the field. + * @param field The field to set. + * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the + * field's type. + **/ +void GPBSetMessageMapField(GPBMessage *self, + GPBFieldDescriptor *field, + id dictionary); + +//%PDDM-EXPAND-END GPB_ACCESSORS() + +/** + * Returns an empty NSData to assign to byte fields when you wish to assign them + * to empty. Prevents allocating a lot of little [NSData data] objects. + **/ +NSData *GPBEmptyNSData(void) __attribute__((pure)); + +/** + * Drops the `unknownFields` from the given message and from all sub message. + **/ +void GPBMessageDropUnknownFieldsRecursively(GPBMessage *message); + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + + +//%PDDM-DEFINE GPB_ACCESSORS() +//% +//%// +//%// Get/Set a given field from/to a message. +//%// +//% +//%// Single Fields +//% +//%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, , *) +//%GPB_ACCESSOR_SINGLE_FULL(String, NSString, , *) +//%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, , *) +//%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, , *) +//%GPB_ACCESSOR_SINGLE(Bool, BOOL, ) +//%GPB_ACCESSOR_SINGLE(Int32, int32_t, n) +//%GPB_ACCESSOR_SINGLE(UInt32, uint32_t, n) +//%GPB_ACCESSOR_SINGLE(Int64, int64_t, n) +//%GPB_ACCESSOR_SINGLE(UInt64, uint64_t, n) +//%GPB_ACCESSOR_SINGLE(Float, float, ) +//%GPB_ACCESSOR_SINGLE(Double, double, ) +//%/** +//% * Gets the given enum field of a message. For proto3, if the value isn't a +//% * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned. +//% * GPBGetMessageRawEnumField will bypass the check and return whatever value +//% * was set. +//% * +//% * @param self The message from which to get the field. +//% * @param field The field to get. +//% * +//% * @return The enum value for the given field. +//% **/ +//%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); +//% +//%/** +//% * Set the given enum field of a message. You can only set values that are +//% * members of the enum. +//% * +//% * @param self The message into which to set the field. +//% * @param field The field to set. +//% * @param value The enum value to set in the field. +//% **/ +//%void GPBSetMessageEnumField(GPBMessage *self, +//% GPBFieldDescriptor *field, +//% int32_t value); +//% +//%/** +//% * Get the given enum field of a message. No check is done to ensure the value +//% * was defined in the enum. +//% * +//% * @param self The message from which to get the field. +//% * @param field The field to get. +//% * +//% * @return The raw enum value for the given field. +//% **/ +//%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field); +//% +//%/** +//% * Set the given enum field of a message. You can set the value to anything, +//% * even a value that is not a member of the enum. +//% * +//% * @param self The message into which to set the field. +//% * @param field The field to set. +//% * @param value The raw enum value to set in the field. +//% **/ +//%void GPBSetMessageRawEnumField(GPBMessage *self, +//% GPBFieldDescriptor *field, +//% int32_t value); +//% +//%// Repeated Fields +//% +//%/** +//% * Gets the value of a repeated field. +//% * +//% * @param self The message from which to get the field. +//% * @param field The repeated field to get. +//% * +//% * @return A GPB*Array or an NSMutableArray based on the field's type. +//% **/ +//%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); +//% +//%/** +//% * Sets the value of a repeated field. +//% * +//% * @param self The message into which to set the field. +//% * @param field The field to set. +//% * @param array A GPB*Array or NSMutableArray based on the field's type. +//% **/ +//%void GPBSetMessageRepeatedField(GPBMessage *self, +//% GPBFieldDescriptor *field, +//% id array); +//% +//%// Map Fields +//% +//%/** +//% * Gets the value of a map<> field. +//% * +//% * @param self The message from which to get the field. +//% * @param field The repeated field to get. +//% * +//% * @return A GPB*Dictionary or NSMutableDictionary based on the field's type. +//% **/ +//%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); +//% +//%/** +//% * Sets the value of a map<> field. +//% * +//% * @param self The message into which to set the field. +//% * @param field The field to set. +//% * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the +//% * field's type. +//% **/ +//%void GPBSetMessageMapField(GPBMessage *self, +//% GPBFieldDescriptor *field, +//% id dictionary); +//% + +//%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE, AN) +//%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, ) +//%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, TisP) +//%/** +//% * Gets the value of a##AN NAME$L field. +//% * +//% * @param self The message from which to get the field. +//% * @param field The field to get. +//% **/ +//%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field); +//% +//%/** +//% * Sets the value of a##AN NAME$L field. +//% * +//% * @param self The message into which to set the field. +//% * @param field The field to set. +//% * @param value The to set in the field. +//% **/ +//%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field, TYPE TisP##value); +//% diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities_PackagePrivate.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities_PackagePrivate.h new file mode 100644 index 000000000..ed424ce39 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBUtilities_PackagePrivate.h @@ -0,0 +1,351 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +#import "GPBUtilities.h" + +#import "GPBDescriptor_PackagePrivate.h" + +// Macros for stringifying library symbols. These are used in the generated +// PB descriptor classes wherever a library symbol name is represented as a +// string. See README.google for more information. +#define GPBStringify(S) #S +#define GPBStringifySymbol(S) GPBStringify(S) + +#define GPBNSStringify(S) @#S +#define GPBNSStringifySymbol(S) GPBNSStringify(S) + +// Constant to internally mark when there is no has bit. +#define GPBNoHasBit INT32_MAX + +CF_EXTERN_C_BEGIN + +// These two are used to inject a runtime check for version mismatch into the +// generated sources to make sure they are linked with a supporting runtime. +void GPBCheckRuntimeVersionSupport(int32_t objcRuntimeVersion); +GPB_INLINE void GPB_DEBUG_CHECK_RUNTIME_VERSIONS() { + // NOTE: By being inline here, this captures the value from the library's + // headers at the time the generated code was compiled. +#if defined(DEBUG) && DEBUG + GPBCheckRuntimeVersionSupport(GOOGLE_PROTOBUF_OBJC_VERSION); +#endif +} + +// Legacy version of the checks, remove when GOOGLE_PROTOBUF_OBJC_GEN_VERSION +// goes away (see more info in GPBBootstrap.h). +void GPBCheckRuntimeVersionInternal(int32_t version); +GPB_INLINE void GPBDebugCheckRuntimeVersion() { +#if defined(DEBUG) && DEBUG + GPBCheckRuntimeVersionInternal(GOOGLE_PROTOBUF_OBJC_GEN_VERSION); +#endif +} + +// Conversion functions for de/serializing floating point types. + +GPB_INLINE int64_t GPBConvertDoubleToInt64(double v) { + union { double f; int64_t i; } u; + u.f = v; + return u.i; +} + +GPB_INLINE int32_t GPBConvertFloatToInt32(float v) { + union { float f; int32_t i; } u; + u.f = v; + return u.i; +} + +GPB_INLINE double GPBConvertInt64ToDouble(int64_t v) { + union { double f; int64_t i; } u; + u.i = v; + return u.f; +} + +GPB_INLINE float GPBConvertInt32ToFloat(int32_t v) { + union { float f; int32_t i; } u; + u.i = v; + return u.f; +} + +GPB_INLINE int32_t GPBLogicalRightShift32(int32_t value, int32_t spaces) { + return (int32_t)((uint32_t)(value) >> spaces); +} + +GPB_INLINE int64_t GPBLogicalRightShift64(int64_t value, int32_t spaces) { + return (int64_t)((uint64_t)(value) >> spaces); +} + +// Decode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers +// into values that can be efficiently encoded with varint. (Otherwise, +// negative values must be sign-extended to 64 bits to be varint encoded, +// thus always taking 10 bytes on the wire.) +GPB_INLINE int32_t GPBDecodeZigZag32(uint32_t n) { + return (int32_t)(GPBLogicalRightShift32((int32_t)n, 1) ^ -((int32_t)(n) & 1)); +} + +// Decode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers +// into values that can be efficiently encoded with varint. (Otherwise, +// negative values must be sign-extended to 64 bits to be varint encoded, +// thus always taking 10 bytes on the wire.) +GPB_INLINE int64_t GPBDecodeZigZag64(uint64_t n) { + return (int64_t)(GPBLogicalRightShift64((int64_t)n, 1) ^ -((int64_t)(n) & 1)); +} + +// Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers +// into values that can be efficiently encoded with varint. (Otherwise, +// negative values must be sign-extended to 64 bits to be varint encoded, +// thus always taking 10 bytes on the wire.) +GPB_INLINE uint32_t GPBEncodeZigZag32(int32_t n) { + // Note: the right-shift must be arithmetic + return ((uint32_t)n << 1) ^ (uint32_t)(n >> 31); +} + +// Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers +// into values that can be efficiently encoded with varint. (Otherwise, +// negative values must be sign-extended to 64 bits to be varint encoded, +// thus always taking 10 bytes on the wire.) +GPB_INLINE uint64_t GPBEncodeZigZag64(int64_t n) { + // Note: the right-shift must be arithmetic + return ((uint64_t)n << 1) ^ (uint64_t)(n >> 63); +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wswitch-enum" +#pragma clang diagnostic ignored "-Wdirect-ivar-access" + +GPB_INLINE BOOL GPBDataTypeIsObject(GPBDataType type) { + switch (type) { + case GPBDataTypeBytes: + case GPBDataTypeString: + case GPBDataTypeMessage: + case GPBDataTypeGroup: + return YES; + default: + return NO; + } +} + +GPB_INLINE BOOL GPBDataTypeIsMessage(GPBDataType type) { + switch (type) { + case GPBDataTypeMessage: + case GPBDataTypeGroup: + return YES; + default: + return NO; + } +} + +GPB_INLINE BOOL GPBFieldDataTypeIsMessage(GPBFieldDescriptor *field) { + return GPBDataTypeIsMessage(field->description_->dataType); +} + +GPB_INLINE BOOL GPBFieldDataTypeIsObject(GPBFieldDescriptor *field) { + return GPBDataTypeIsObject(field->description_->dataType); +} + +GPB_INLINE BOOL GPBExtensionIsMessage(GPBExtensionDescriptor *ext) { + return GPBDataTypeIsMessage(ext->description_->dataType); +} + +// The field is an array/map or it has an object value. +GPB_INLINE BOOL GPBFieldStoresObject(GPBFieldDescriptor *field) { + GPBMessageFieldDescription *desc = field->description_; + if ((desc->flags & (GPBFieldRepeated | GPBFieldMapKeyMask)) != 0) { + return YES; + } + return GPBDataTypeIsObject(desc->dataType); +} + +BOOL GPBGetHasIvar(GPBMessage *self, int32_t index, uint32_t fieldNumber); +void GPBSetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber, + BOOL value); +uint32_t GPBGetHasOneof(GPBMessage *self, int32_t index); + +GPB_INLINE BOOL +GPBGetHasIvarField(GPBMessage *self, GPBFieldDescriptor *field) { + GPBMessageFieldDescription *fieldDesc = field->description_; + return GPBGetHasIvar(self, fieldDesc->hasIndex, fieldDesc->number); +} +GPB_INLINE void GPBSetHasIvarField(GPBMessage *self, GPBFieldDescriptor *field, + BOOL value) { + GPBMessageFieldDescription *fieldDesc = field->description_; + GPBSetHasIvar(self, fieldDesc->hasIndex, fieldDesc->number, value); +} + +void GPBMaybeClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof, + int32_t oneofHasIndex, uint32_t fieldNumberNotToClear); + +#pragma clang diagnostic pop + +//%PDDM-DEFINE GPB_IVAR_SET_DECL(NAME, TYPE) +//%void GPBSet##NAME##IvarWithFieldInternal(GPBMessage *self, +//% NAME$S GPBFieldDescriptor *field, +//% NAME$S TYPE value, +//% NAME$S GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Bool, BOOL) +// This block of code is generated, do not edit it directly. + +void GPBSetBoolIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + BOOL value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Int32, int32_t) +// This block of code is generated, do not edit it directly. + +void GPBSetInt32IvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + int32_t value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(UInt32, uint32_t) +// This block of code is generated, do not edit it directly. + +void GPBSetUInt32IvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + uint32_t value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Int64, int64_t) +// This block of code is generated, do not edit it directly. + +void GPBSetInt64IvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + int64_t value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(UInt64, uint64_t) +// This block of code is generated, do not edit it directly. + +void GPBSetUInt64IvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + uint64_t value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Float, float) +// This block of code is generated, do not edit it directly. + +void GPBSetFloatIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + float value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Double, double) +// This block of code is generated, do not edit it directly. + +void GPBSetDoubleIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + double value, + GPBFileSyntax syntax); +//%PDDM-EXPAND GPB_IVAR_SET_DECL(Enum, int32_t) +// This block of code is generated, do not edit it directly. + +void GPBSetEnumIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + int32_t value, + GPBFileSyntax syntax); +//%PDDM-EXPAND-END (8 expansions) + +int32_t GPBGetEnumIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + GPBFileSyntax syntax); + +id GPBGetObjectIvarWithField(GPBMessage *self, GPBFieldDescriptor *field); + +void GPBSetObjectIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, id value, + GPBFileSyntax syntax); +void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self, + GPBFieldDescriptor *field, + id __attribute__((ns_consumed)) + value, + GPBFileSyntax syntax); + +// GPBGetObjectIvarWithField will automatically create the field (message) if +// it doesn't exist. GPBGetObjectIvarWithFieldNoAutocreate will return nil. +id GPBGetObjectIvarWithFieldNoAutocreate(GPBMessage *self, + GPBFieldDescriptor *field); + +void GPBSetAutocreatedRetainedObjectIvarWithField( + GPBMessage *self, GPBFieldDescriptor *field, + id __attribute__((ns_consumed)) value); + +// Clears and releases the autocreated message ivar, if it's autocreated. If +// it's not set as autocreated, this method does nothing. +void GPBClearAutocreatedMessageIvarWithField(GPBMessage *self, + GPBFieldDescriptor *field); + +// Returns an Objective C encoding for |selector|. |instanceSel| should be +// YES if it's an instance selector (as opposed to a class selector). +// |selector| must be a selector from MessageSignatureProtocol. +const char *GPBMessageEncodingForSelector(SEL selector, BOOL instanceSel); + +// Helper for text format name encoding. +// decodeData is the data describing the sepecial decodes. +// key and inputString are the input that needs decoding. +NSString *GPBDecodeTextFormatName(const uint8_t *decodeData, int32_t key, + NSString *inputString); + +// A series of selectors that are used solely to get @encoding values +// for them by the dynamic protobuf runtime code. See +// GPBMessageEncodingForSelector for details. GPBRootObject conforms to +// the protocol so that it is encoded in the Objective C runtime. +@protocol GPBMessageSignatureProtocol +@optional + +#define GPB_MESSAGE_SIGNATURE_ENTRY(TYPE, NAME) \ + -(TYPE)get##NAME; \ + -(void)set##NAME : (TYPE)value; \ + -(TYPE)get##NAME##AtIndex : (NSUInteger)index; + +GPB_MESSAGE_SIGNATURE_ENTRY(BOOL, Bool) +GPB_MESSAGE_SIGNATURE_ENTRY(uint32_t, Fixed32) +GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, SFixed32) +GPB_MESSAGE_SIGNATURE_ENTRY(float, Float) +GPB_MESSAGE_SIGNATURE_ENTRY(uint64_t, Fixed64) +GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, SFixed64) +GPB_MESSAGE_SIGNATURE_ENTRY(double, Double) +GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, Int32) +GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, Int64) +GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, SInt32) +GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, SInt64) +GPB_MESSAGE_SIGNATURE_ENTRY(uint32_t, UInt32) +GPB_MESSAGE_SIGNATURE_ENTRY(uint64_t, UInt64) +GPB_MESSAGE_SIGNATURE_ENTRY(NSData *, Bytes) +GPB_MESSAGE_SIGNATURE_ENTRY(NSString *, String) +GPB_MESSAGE_SIGNATURE_ENTRY(GPBMessage *, Message) +GPB_MESSAGE_SIGNATURE_ENTRY(GPBMessage *, Group) +GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, Enum) + +#undef GPB_MESSAGE_SIGNATURE_ENTRY + +- (id)getArray; +- (NSUInteger)getArrayCount; +- (void)setArray:(NSArray *)array; ++ (id)getClassValue; +@end + +BOOL GPBClassHasSel(Class aClass, SEL sel); + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWellKnownTypes.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWellKnownTypes.h new file mode 100644 index 000000000..04df41788 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWellKnownTypes.h @@ -0,0 +1,245 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2015 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import <Foundation/Foundation.h> + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/Any.pbobjc.h> + #import <Protobuf/Duration.pbobjc.h> + #import <Protobuf/Timestamp.pbobjc.h> +#else + #import "google/protobuf/Any.pbobjc.h" + #import "google/protobuf/Duration.pbobjc.h" + #import "google/protobuf/Timestamp.pbobjc.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - Errors + +/** NSError domain used for errors. */ +extern NSString *const GPBWellKnownTypesErrorDomain; + +/** Error code for NSError with GPBWellKnownTypesErrorDomain. */ +typedef NS_ENUM(NSInteger, GPBWellKnownTypesErrorCode) { + /** The type_url could not be computed for the requested GPBMessage class. */ + GPBWellKnownTypesErrorCodeFailedToComputeTypeURL = -100, + /** type_url in a Any doesn’t match that of the requested GPBMessage class. */ + GPBWellKnownTypesErrorCodeTypeURLMismatch = -101, +}; + +#pragma mark - GPBTimestamp + +/** + * Category for GPBTimestamp to work with standard Foundation time/date types. + **/ +@interface GPBTimestamp (GBPWellKnownTypes) + +/** The NSDate representation of this GPBTimestamp. */ +@property(nonatomic, readwrite, strong) NSDate *date; + +/** + * The NSTimeInterval representation of this GPBTimestamp. + * + * @note: Not all second/nanos combinations can be represented in a + * NSTimeInterval, so getting this could be a lossy transform. + **/ +@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970; + +/** + * Initializes a GPBTimestamp with the given NSDate. + * + * @param date The date to configure the GPBTimestamp with. + * + * @return A newly initialized GPBTimestamp. + **/ +- (instancetype)initWithDate:(NSDate *)date; + +/** + * Initializes a GPBTimestamp with the given NSTimeInterval. + * + * @param timeIntervalSince1970 Time interval to configure the GPBTimestamp with. + * + * @return A newly initialized GPBTimestamp. + **/ +- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970; + +@end + +#pragma mark - GPBDuration + +/** + * Category for GPBDuration to work with standard Foundation time type. + **/ +@interface GPBDuration (GBPWellKnownTypes) + +/** + * The NSTimeInterval representation of this GPBDuration. + * + * @note: Not all second/nanos combinations can be represented in a + * NSTimeInterval, so getting this could be a lossy transform. + **/ +@property(nonatomic, readwrite) NSTimeInterval timeInterval; + +/** + * Initializes a GPBDuration with the given NSTimeInterval. + * + * @param timeInterval Time interval to configure the GPBDuration with. + * + * @return A newly initialized GPBDuration. + **/ +- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval; + +// These next two methods are deprecated because GBPDuration has no need of a +// "base" time. The older methods were about symmetry with GBPTimestamp, but +// the unix epoch usage is too confusing. + +/** Deprecated, use timeInterval instead. */ +@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970 + __attribute__((deprecated("Use timeInterval"))); +/** Deprecated, use initWithTimeInterval: instead. */ +- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 + __attribute__((deprecated("Use initWithTimeInterval:"))); + +@end + +#pragma mark - GPBAny + +/** + * Category for GPBAny to help work with the message within the object. + **/ +@interface GPBAny (GBPWellKnownTypes) + +/** + * Convenience method to create a GPBAny containing the serialized message. + * This uses type.googleapis.com/ as the type_url's prefix. + * + * @param message The message to be packed into the GPBAny. + * @param errorPtr Pointer to an error that will be populated if something goes + * wrong. + * + * @return A newly configured GPBAny with the given message, or nil on failure. + */ ++ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message + error:(NSError **)errorPtr; + +/** + * Convenience method to create a GPBAny containing the serialized message. + * + * @param message The message to be packed into the GPBAny. + * @param typeURLPrefix The URL prefix to apply for type_url. + * @param errorPtr Pointer to an error that will be populated if something + * goes wrong. + * + * @return A newly configured GPBAny with the given message, or nil on failure. + */ ++ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message + typeURLPrefix:(nonnull NSString *)typeURLPrefix + error:(NSError **)errorPtr; + +/** + * Initializes a GPBAny to contain the serialized message. This uses + * type.googleapis.com/ as the type_url's prefix. + * + * @param message The message to be packed into the GPBAny. + * @param errorPtr Pointer to an error that will be populated if something goes + * wrong. + * + * @return A newly configured GPBAny with the given message, or nil on failure. + */ +- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message + error:(NSError **)errorPtr; + +/** + * Initializes a GPBAny to contain the serialized message. + * + * @param message The message to be packed into the GPBAny. + * @param typeURLPrefix The URL prefix to apply for type_url. + * @param errorPtr Pointer to an error that will be populated if something + * goes wrong. + * + * @return A newly configured GPBAny with the given message, or nil on failure. + */ +- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message + typeURLPrefix:(nonnull NSString *)typeURLPrefix + error:(NSError **)errorPtr; + +/** + * Packs the serialized message into this GPBAny. This uses + * type.googleapis.com/ as the type_url's prefix. + * + * @param message The message to be packed into the GPBAny. + * @param errorPtr Pointer to an error that will be populated if something goes + * wrong. + * + * @return Whether the packing was successful or not. + */ +- (BOOL)packWithMessage:(nonnull GPBMessage *)message + error:(NSError **)errorPtr; + +/** + * Packs the serialized message into this GPBAny. + * + * @param message The message to be packed into the GPBAny. + * @param typeURLPrefix The URL prefix to apply for type_url. + * @param errorPtr Pointer to an error that will be populated if something + * goes wrong. + * + * @return Whether the packing was successful or not. + */ +- (BOOL)packWithMessage:(nonnull GPBMessage *)message + typeURLPrefix:(nonnull NSString *)typeURLPrefix + error:(NSError **)errorPtr; + +/** + * Unpacks the serialized message as if it was an instance of the given class. + * + * @note When checking type_url, the base URL is not checked, only the fully + * qualified name. + * + * @param messageClass The class to use to deserialize the contained message. + * @param errorPtr Pointer to an error that will be populated if something + * goes wrong. + * + * @return An instance of the given class populated with the contained data, or + * nil on failure. + */ +- (nullable GPBMessage *)unpackMessageClass:(Class)messageClass + error:(NSError **)errorPtr; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWireFormat.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWireFormat.h new file mode 100644 index 000000000..c5941a382 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/GPBWireFormat.h @@ -0,0 +1,73 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#import "GPBRuntimeTypes.h" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +typedef enum { + GPBWireFormatVarint = 0, + GPBWireFormatFixed64 = 1, + GPBWireFormatLengthDelimited = 2, + GPBWireFormatStartGroup = 3, + GPBWireFormatEndGroup = 4, + GPBWireFormatFixed32 = 5, +} GPBWireFormat; + +enum { + GPBWireFormatMessageSetItem = 1, + GPBWireFormatMessageSetTypeId = 2, + GPBWireFormatMessageSetMessage = 3 +}; + +uint32_t GPBWireFormatMakeTag(uint32_t fieldNumber, GPBWireFormat wireType) + __attribute__((const)); +GPBWireFormat GPBWireFormatGetTagWireType(uint32_t tag) __attribute__((const)); +uint32_t GPBWireFormatGetTagFieldNumber(uint32_t tag) __attribute__((const)); +BOOL GPBWireFormatIsValidTag(uint32_t tag) __attribute__((const)); + +GPBWireFormat GPBWireFormatForType(GPBDataType dataType, BOOL isPacked) + __attribute__((const)); + +#define GPBWireFormatMessageSetItemTag \ + (GPBWireFormatMakeTag(GPBWireFormatMessageSetItem, GPBWireFormatStartGroup)) +#define GPBWireFormatMessageSetItemEndTag \ + (GPBWireFormatMakeTag(GPBWireFormatMessageSetItem, GPBWireFormatEndGroup)) +#define GPBWireFormatMessageSetTypeIdTag \ + (GPBWireFormatMakeTag(GPBWireFormatMessageSetTypeId, GPBWireFormatVarint)) +#define GPBWireFormatMessageSetMessageTag \ + (GPBWireFormatMakeTag(GPBWireFormatMessageSetMessage, \ + GPBWireFormatLengthDelimited)) + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/SourceContext.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/SourceContext.pbobjc.h new file mode 100644 index 000000000..e4923959e --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/SourceContext.pbobjc.h @@ -0,0 +1,77 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/source_context.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBSourceContextRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBSourceContextRoot : GPBRootObject +@end + +#pragma mark - GPBSourceContext + +typedef GPB_ENUM(GPBSourceContext_FieldNumber) { + GPBSourceContext_FieldNumber_FileName = 1, +}; + +/** + * `SourceContext` represents information about the source of a + * protobuf element, like the file in which it is defined. + **/ +@interface GPBSourceContext : GPBMessage + +/** + * The path-qualified name of the .proto file that contained the associated + * protobuf element. For example: `"google/protobuf/source_context.proto"`. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *fileName; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Struct.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Struct.pbobjc.h new file mode 100644 index 000000000..fb2042519 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Struct.pbobjc.h @@ -0,0 +1,204 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/struct.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +@class GPBListValue; +@class GPBStruct; +@class GPBValue; + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - Enum GPBNullValue + +/** + * `NullValue` is a singleton enumeration to represent the null value for the + * `Value` type union. + * + * The JSON representation for `NullValue` is JSON `null`. + **/ +typedef GPB_ENUM(GPBNullValue) { + /** + * Value used if any message's field encounters a value that is not defined + * by this enum. The message will also have C functions to get/set the rawValue + * of the field. + **/ + GPBNullValue_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue, + /** Null value. */ + GPBNullValue_NullValue = 0, +}; + +GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void); + +/** + * Checks to see if the given value is defined by the enum or was not known at + * the time this source was generated. + **/ +BOOL GPBNullValue_IsValidValue(int32_t value); + +#pragma mark - GPBStructRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBStructRoot : GPBRootObject +@end + +#pragma mark - GPBStruct + +typedef GPB_ENUM(GPBStruct_FieldNumber) { + GPBStruct_FieldNumber_Fields = 1, +}; + +/** + * `Struct` represents a structured data value, consisting of fields + * which map to dynamically typed values. In some languages, `Struct` + * might be supported by a native representation. For example, in + * scripting languages like JS a struct is represented as an + * object. The details of that representation are described together + * with the proto support for the language. + * + * The JSON representation for `Struct` is JSON object. + **/ +@interface GPBStruct : GPBMessage + +/** Unordered map of dynamically typed values. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, GPBValue*> *fields; +/** The number of items in @c fields without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger fields_Count; + +@end + +#pragma mark - GPBValue + +typedef GPB_ENUM(GPBValue_FieldNumber) { + GPBValue_FieldNumber_NullValue = 1, + GPBValue_FieldNumber_NumberValue = 2, + GPBValue_FieldNumber_StringValue = 3, + GPBValue_FieldNumber_BoolValue = 4, + GPBValue_FieldNumber_StructValue = 5, + GPBValue_FieldNumber_ListValue = 6, +}; + +typedef GPB_ENUM(GPBValue_Kind_OneOfCase) { + GPBValue_Kind_OneOfCase_GPBUnsetOneOfCase = 0, + GPBValue_Kind_OneOfCase_NullValue = 1, + GPBValue_Kind_OneOfCase_NumberValue = 2, + GPBValue_Kind_OneOfCase_StringValue = 3, + GPBValue_Kind_OneOfCase_BoolValue = 4, + GPBValue_Kind_OneOfCase_StructValue = 5, + GPBValue_Kind_OneOfCase_ListValue = 6, +}; + +/** + * `Value` represents a dynamically typed value which can be either + * null, a number, a string, a boolean, a recursive struct value, or a + * list of values. A producer of value is expected to set one of that + * variants, absence of any variant indicates an error. + * + * The JSON representation for `Value` is JSON value. + **/ +@interface GPBValue : GPBMessage + +/** The kind of value. */ +@property(nonatomic, readonly) GPBValue_Kind_OneOfCase kindOneOfCase; + +/** Represents a null value. */ +@property(nonatomic, readwrite) GPBNullValue nullValue; + +/** Represents a double value. */ +@property(nonatomic, readwrite) double numberValue; + +/** Represents a string value. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *stringValue; + +/** Represents a boolean value. */ +@property(nonatomic, readwrite) BOOL boolValue; + +/** Represents a structured value. */ +@property(nonatomic, readwrite, strong, null_resettable) GPBStruct *structValue; + +/** Represents a repeated `Value`. */ +@property(nonatomic, readwrite, strong, null_resettable) GPBListValue *listValue; + +@end + +/** + * Fetches the raw value of a @c GPBValue's @c nullValue property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBValue_NullValue_RawValue(GPBValue *message); +/** + * Sets the raw value of an @c GPBValue's @c nullValue property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBValue_NullValue_RawValue(GPBValue *message, int32_t value); + +/** + * Clears whatever value was set for the oneof 'kind'. + **/ +void GPBValue_ClearKindOneOfCase(GPBValue *message); + +#pragma mark - GPBListValue + +typedef GPB_ENUM(GPBListValue_FieldNumber) { + GPBListValue_FieldNumber_ValuesArray = 1, +}; + +/** + * `ListValue` is a wrapper around a repeated field of values. + * + * The JSON representation for `ListValue` is JSON array. + **/ +@interface GPBListValue : GPBMessage + +/** Repeated field of dynamically typed values. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBValue*> *valuesArray; +/** The number of items in @c valuesArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger valuesArray_Count; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Timestamp.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Timestamp.pbobjc.h new file mode 100644 index 000000000..f6ea25ca1 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Timestamp.pbobjc.h @@ -0,0 +1,165 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/timestamp.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBTimestampRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBTimestampRoot : GPBRootObject +@end + +#pragma mark - GPBTimestamp + +typedef GPB_ENUM(GPBTimestamp_FieldNumber) { + GPBTimestamp_FieldNumber_Seconds = 1, + GPBTimestamp_FieldNumber_Nanos = 2, +}; + +/** + * A Timestamp represents a point in time independent of any time zone or local + * calendar, encoded as a count of seconds and fractions of seconds at + * nanosecond resolution. The count is relative to an epoch at UTC midnight on + * January 1, 1970, in the proleptic Gregorian calendar which extends the + * Gregorian calendar backwards to year one. + * + * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + * second table is needed for interpretation, using a [24-hour linear + * smear](https://developers.google.com/time/smear). + * + * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + * restricting to that range, we ensure that we can convert to and from [RFC + * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + * + * # Examples + * + * Example 1: Compute Timestamp from POSIX `time()`. + * + * Timestamp timestamp; + * timestamp.set_seconds(time(NULL)); + * timestamp.set_nanos(0); + * + * Example 2: Compute Timestamp from POSIX `gettimeofday()`. + * + * struct timeval tv; + * gettimeofday(&tv, NULL); + * + * Timestamp timestamp; + * timestamp.set_seconds(tv.tv_sec); + * timestamp.set_nanos(tv.tv_usec * 1000); + * + * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + * + * FILETIME ft; + * GetSystemTimeAsFileTime(&ft); + * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + * + * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + * Timestamp timestamp; + * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + * + * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + * + * long millis = System.currentTimeMillis(); + * + * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + * .setNanos((int) ((millis % 1000) * 1000000)).build(); + * + * + * Example 5: Compute Timestamp from current time in Python. + * + * timestamp = Timestamp() + * timestamp.GetCurrentTime() + * + * # JSON Mapping + * + * In JSON format, the Timestamp type is encoded as a string in the + * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + * where {year} is always expressed using four digits while {month}, {day}, + * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + * is required. A proto3 JSON serializer should always use UTC (as indicated by + * "Z") when printing the Timestamp type and a proto3 JSON parser should be + * able to accept both UTC and other timezones (as indicated by an offset). + * + * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + * 01:30 UTC on January 15, 2017. + * + * In JavaScript, one can convert a Date object to this format using the + * standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + * method. In Python, a standard `datetime.datetime` object can be converted + * to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) + * with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one + * can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( + * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D + * ) to obtain a formatter capable of generating timestamps in this format. + **/ +@interface GPBTimestamp : GPBMessage + +/** + * Represents seconds of UTC time since Unix epoch + * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + * 9999-12-31T23:59:59Z inclusive. + **/ +@property(nonatomic, readwrite) int64_t seconds; + +/** + * Non-negative fractions of a second at nanosecond resolution. Negative + * second values with fractions must still have non-negative nanos values + * that count forward in time. Must be from 0 to 999,999,999 + * inclusive. + **/ +@property(nonatomic, readwrite) int32_t nanos; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Type.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Type.pbobjc.h new file mode 100644 index 000000000..e14d15df6 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Type.pbobjc.h @@ -0,0 +1,444 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/type.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +@class GPBAny; +@class GPBEnumValue; +@class GPBField; +@class GPBOption; +@class GPBSourceContext; + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - Enum GPBSyntax + +/** The syntax in which a protocol buffer element is defined. */ +typedef GPB_ENUM(GPBSyntax) { + /** + * Value used if any message's field encounters a value that is not defined + * by this enum. The message will also have C functions to get/set the rawValue + * of the field. + **/ + GPBSyntax_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue, + /** Syntax `proto2`. */ + GPBSyntax_SyntaxProto2 = 0, + + /** Syntax `proto3`. */ + GPBSyntax_SyntaxProto3 = 1, +}; + +GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void); + +/** + * Checks to see if the given value is defined by the enum or was not known at + * the time this source was generated. + **/ +BOOL GPBSyntax_IsValidValue(int32_t value); + +#pragma mark - Enum GPBField_Kind + +/** Basic field types. */ +typedef GPB_ENUM(GPBField_Kind) { + /** + * Value used if any message's field encounters a value that is not defined + * by this enum. The message will also have C functions to get/set the rawValue + * of the field. + **/ + GPBField_Kind_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue, + /** Field type unknown. */ + GPBField_Kind_TypeUnknown = 0, + + /** Field type double. */ + GPBField_Kind_TypeDouble = 1, + + /** Field type float. */ + GPBField_Kind_TypeFloat = 2, + + /** Field type int64. */ + GPBField_Kind_TypeInt64 = 3, + + /** Field type uint64. */ + GPBField_Kind_TypeUint64 = 4, + + /** Field type int32. */ + GPBField_Kind_TypeInt32 = 5, + + /** Field type fixed64. */ + GPBField_Kind_TypeFixed64 = 6, + + /** Field type fixed32. */ + GPBField_Kind_TypeFixed32 = 7, + + /** Field type bool. */ + GPBField_Kind_TypeBool = 8, + + /** Field type string. */ + GPBField_Kind_TypeString = 9, + + /** Field type group. Proto2 syntax only, and deprecated. */ + GPBField_Kind_TypeGroup = 10, + + /** Field type message. */ + GPBField_Kind_TypeMessage = 11, + + /** Field type bytes. */ + GPBField_Kind_TypeBytes = 12, + + /** Field type uint32. */ + GPBField_Kind_TypeUint32 = 13, + + /** Field type enum. */ + GPBField_Kind_TypeEnum = 14, + + /** Field type sfixed32. */ + GPBField_Kind_TypeSfixed32 = 15, + + /** Field type sfixed64. */ + GPBField_Kind_TypeSfixed64 = 16, + + /** Field type sint32. */ + GPBField_Kind_TypeSint32 = 17, + + /** Field type sint64. */ + GPBField_Kind_TypeSint64 = 18, +}; + +GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void); + +/** + * Checks to see if the given value is defined by the enum or was not known at + * the time this source was generated. + **/ +BOOL GPBField_Kind_IsValidValue(int32_t value); + +#pragma mark - Enum GPBField_Cardinality + +/** Whether a field is optional, required, or repeated. */ +typedef GPB_ENUM(GPBField_Cardinality) { + /** + * Value used if any message's field encounters a value that is not defined + * by this enum. The message will also have C functions to get/set the rawValue + * of the field. + **/ + GPBField_Cardinality_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue, + /** For fields with unknown cardinality. */ + GPBField_Cardinality_CardinalityUnknown = 0, + + /** For optional fields. */ + GPBField_Cardinality_CardinalityOptional = 1, + + /** For required fields. Proto2 syntax only. */ + GPBField_Cardinality_CardinalityRequired = 2, + + /** For repeated fields. */ + GPBField_Cardinality_CardinalityRepeated = 3, +}; + +GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void); + +/** + * Checks to see if the given value is defined by the enum or was not known at + * the time this source was generated. + **/ +BOOL GPBField_Cardinality_IsValidValue(int32_t value); + +#pragma mark - GPBTypeRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBTypeRoot : GPBRootObject +@end + +#pragma mark - GPBType + +typedef GPB_ENUM(GPBType_FieldNumber) { + GPBType_FieldNumber_Name = 1, + GPBType_FieldNumber_FieldsArray = 2, + GPBType_FieldNumber_OneofsArray = 3, + GPBType_FieldNumber_OptionsArray = 4, + GPBType_FieldNumber_SourceContext = 5, + GPBType_FieldNumber_Syntax = 6, +}; + +/** + * A protocol buffer message type. + **/ +@interface GPBType : GPBMessage + +/** The fully qualified message name. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** The list of fields. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBField*> *fieldsArray; +/** The number of items in @c fieldsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger fieldsArray_Count; + +/** The list of types appearing in `oneof` definitions in this type. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *oneofsArray; +/** The number of items in @c oneofsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger oneofsArray_Count; + +/** The protocol buffer options. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +/** The source context. */ +@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext; +/** Test to see if @c sourceContext has been set. */ +@property(nonatomic, readwrite) BOOL hasSourceContext; + +/** The source syntax. */ +@property(nonatomic, readwrite) GPBSyntax syntax; + +@end + +/** + * Fetches the raw value of a @c GPBType's @c syntax property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBType_Syntax_RawValue(GPBType *message); +/** + * Sets the raw value of an @c GPBType's @c syntax property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value); + +#pragma mark - GPBField + +typedef GPB_ENUM(GPBField_FieldNumber) { + GPBField_FieldNumber_Kind = 1, + GPBField_FieldNumber_Cardinality = 2, + GPBField_FieldNumber_Number = 3, + GPBField_FieldNumber_Name = 4, + GPBField_FieldNumber_TypeURL = 6, + GPBField_FieldNumber_OneofIndex = 7, + GPBField_FieldNumber_Packed = 8, + GPBField_FieldNumber_OptionsArray = 9, + GPBField_FieldNumber_JsonName = 10, + GPBField_FieldNumber_DefaultValue = 11, +}; + +/** + * A single field of a message type. + **/ +@interface GPBField : GPBMessage + +/** The field type. */ +@property(nonatomic, readwrite) GPBField_Kind kind; + +/** The field cardinality. */ +@property(nonatomic, readwrite) GPBField_Cardinality cardinality; + +/** The field number. */ +@property(nonatomic, readwrite) int32_t number; + +/** The field name. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** + * The field type URL, without the scheme, for message or enumeration + * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL; + +/** + * The index of the field type in `Type.oneofs`, for message or enumeration + * types. The first type has index 1; zero means the type is not in the list. + **/ +@property(nonatomic, readwrite) int32_t oneofIndex; + +/** Whether to use alternative packed wire representation. */ +@property(nonatomic, readwrite) BOOL packed; + +/** The protocol buffer options. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +/** The field JSON name. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *jsonName; + +/** The string value of the default value of this field. Proto2 syntax only. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *defaultValue; + +@end + +/** + * Fetches the raw value of a @c GPBField's @c kind property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBField_Kind_RawValue(GPBField *message); +/** + * Sets the raw value of an @c GPBField's @c kind property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBField_Kind_RawValue(GPBField *message, int32_t value); + +/** + * Fetches the raw value of a @c GPBField's @c cardinality property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBField_Cardinality_RawValue(GPBField *message); +/** + * Sets the raw value of an @c GPBField's @c cardinality property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value); + +#pragma mark - GPBEnum + +typedef GPB_ENUM(GPBEnum_FieldNumber) { + GPBEnum_FieldNumber_Name = 1, + GPBEnum_FieldNumber_EnumvalueArray = 2, + GPBEnum_FieldNumber_OptionsArray = 3, + GPBEnum_FieldNumber_SourceContext = 4, + GPBEnum_FieldNumber_Syntax = 5, +}; + +/** + * Enum type definition. + **/ +@interface GPBEnum : GPBMessage + +/** Enum type name. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** Enum value definitions. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBEnumValue*> *enumvalueArray; +/** The number of items in @c enumvalueArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger enumvalueArray_Count; + +/** Protocol buffer options. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +/** The source context. */ +@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext; +/** Test to see if @c sourceContext has been set. */ +@property(nonatomic, readwrite) BOOL hasSourceContext; + +/** The source syntax. */ +@property(nonatomic, readwrite) GPBSyntax syntax; + +@end + +/** + * Fetches the raw value of a @c GPBEnum's @c syntax property, even + * if the value was not defined by the enum at the time the code was generated. + **/ +int32_t GPBEnum_Syntax_RawValue(GPBEnum *message); +/** + * Sets the raw value of an @c GPBEnum's @c syntax property, allowing + * it to be set to a value that was not defined by the enum at the time the code + * was generated. + **/ +void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value); + +#pragma mark - GPBEnumValue + +typedef GPB_ENUM(GPBEnumValue_FieldNumber) { + GPBEnumValue_FieldNumber_Name = 1, + GPBEnumValue_FieldNumber_Number = 2, + GPBEnumValue_FieldNumber_OptionsArray = 3, +}; + +/** + * Enum value definition. + **/ +@interface GPBEnumValue : GPBMessage + +/** Enum value name. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** Enum value number. */ +@property(nonatomic, readwrite) int32_t number; + +/** Protocol buffer options. */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; +/** The number of items in @c optionsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger optionsArray_Count; + +@end + +#pragma mark - GPBOption + +typedef GPB_ENUM(GPBOption_FieldNumber) { + GPBOption_FieldNumber_Name = 1, + GPBOption_FieldNumber_Value = 2, +}; + +/** + * A protocol buffer option, which can be attached to a message, field, + * enumeration, etc. + **/ +@interface GPBOption : GPBMessage + +/** + * The option's name. For protobuf built-in options (options defined in + * descriptor.proto), this is the short name. For example, `"map_entry"`. + * For custom options, it should be the fully-qualified name. For example, + * `"google.api.http"`. + **/ +@property(nonatomic, readwrite, copy, null_resettable) NSString *name; + +/** + * The option's value packed in an Any message. If the value is a primitive, + * the corresponding wrapper type defined in google/protobuf/wrappers.proto + * should be used. If the value is an enum, it should be stored as an int32 + * value using the google.protobuf.Int32Value type. + **/ +@property(nonatomic, readwrite, strong, null_resettable) GPBAny *value; +/** Test to see if @c value has been set. */ +@property(nonatomic, readwrite) BOOL hasValue; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Wrappers.pbobjc.h b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Wrappers.pbobjc.h new file mode 100644 index 000000000..0411e1ec0 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Headers/Wrappers.pbobjc.h @@ -0,0 +1,219 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/wrappers.proto + +// This CPP symbol can be defined to use imports that match up to the framework +// imports needed when using CocoaPods. +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 +#endif + +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS + #import <Protobuf/GPBDescriptor.h> + #import <Protobuf/GPBMessage.h> + #import <Protobuf/GPBRootObject.h> +#else + #import "GPBDescriptor.h" + #import "GPBMessage.h" + #import "GPBRootObject.h" +#endif + +#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 +#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. +#endif +#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION +#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. +#endif + +// @@protoc_insertion_point(imports) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +CF_EXTERN_C_BEGIN + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - GPBWrappersRoot + +/** + * Exposes the extension registry for this file. + * + * The base class provides: + * @code + * + (GPBExtensionRegistry *)extensionRegistry; + * @endcode + * which is a @c GPBExtensionRegistry that includes all the extensions defined by + * this file and all files that it depends on. + **/ +@interface GPBWrappersRoot : GPBRootObject +@end + +#pragma mark - GPBDoubleValue + +typedef GPB_ENUM(GPBDoubleValue_FieldNumber) { + GPBDoubleValue_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `double`. + * + * The JSON representation for `DoubleValue` is JSON number. + **/ +@interface GPBDoubleValue : GPBMessage + +/** The double value. */ +@property(nonatomic, readwrite) double value; + +@end + +#pragma mark - GPBFloatValue + +typedef GPB_ENUM(GPBFloatValue_FieldNumber) { + GPBFloatValue_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `float`. + * + * The JSON representation for `FloatValue` is JSON number. + **/ +@interface GPBFloatValue : GPBMessage + +/** The float value. */ +@property(nonatomic, readwrite) float value; + +@end + +#pragma mark - GPBInt64Value + +typedef GPB_ENUM(GPBInt64Value_FieldNumber) { + GPBInt64Value_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `int64`. + * + * The JSON representation for `Int64Value` is JSON string. + **/ +@interface GPBInt64Value : GPBMessage + +/** The int64 value. */ +@property(nonatomic, readwrite) int64_t value; + +@end + +#pragma mark - GPBUInt64Value + +typedef GPB_ENUM(GPBUInt64Value_FieldNumber) { + GPBUInt64Value_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `uint64`. + * + * The JSON representation for `UInt64Value` is JSON string. + **/ +@interface GPBUInt64Value : GPBMessage + +/** The uint64 value. */ +@property(nonatomic, readwrite) uint64_t value; + +@end + +#pragma mark - GPBInt32Value + +typedef GPB_ENUM(GPBInt32Value_FieldNumber) { + GPBInt32Value_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `int32`. + * + * The JSON representation for `Int32Value` is JSON number. + **/ +@interface GPBInt32Value : GPBMessage + +/** The int32 value. */ +@property(nonatomic, readwrite) int32_t value; + +@end + +#pragma mark - GPBUInt32Value + +typedef GPB_ENUM(GPBUInt32Value_FieldNumber) { + GPBUInt32Value_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `uint32`. + * + * The JSON representation for `UInt32Value` is JSON number. + **/ +@interface GPBUInt32Value : GPBMessage + +/** The uint32 value. */ +@property(nonatomic, readwrite) uint32_t value; + +@end + +#pragma mark - GPBBoolValue + +typedef GPB_ENUM(GPBBoolValue_FieldNumber) { + GPBBoolValue_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `bool`. + * + * The JSON representation for `BoolValue` is JSON `true` and `false`. + **/ +@interface GPBBoolValue : GPBMessage + +/** The bool value. */ +@property(nonatomic, readwrite) BOOL value; + +@end + +#pragma mark - GPBStringValue + +typedef GPB_ENUM(GPBStringValue_FieldNumber) { + GPBStringValue_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `string`. + * + * The JSON representation for `StringValue` is JSON string. + **/ +@interface GPBStringValue : GPBMessage + +/** The string value. */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *value; + +@end + +#pragma mark - GPBBytesValue + +typedef GPB_ENUM(GPBBytesValue_FieldNumber) { + GPBBytesValue_FieldNumber_Value = 1, +}; + +/** + * Wrapper message for `bytes`. + * + * The JSON representation for `BytesValue` is JSON string. + **/ +@interface GPBBytesValue : GPBMessage + +/** The bytes value. */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *value; + +@end + +NS_ASSUME_NONNULL_END + +CF_EXTERN_C_END + +#pragma clang diagnostic pop + +// @@protoc_insertion_point(global_scope) diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Modules/module.modulemap b/Libraries external/Firebase/MLVision/Protobuf.framework/Modules/module.modulemap new file mode 100644 index 000000000..880e9c464 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +framework module Protobuf { +umbrella header "Protobuf.h" +export * +module * { export * } +} diff --git a/Libraries external/Firebase/MLVision/Protobuf.framework/Protobuf b/Libraries external/Firebase/MLVision/Protobuf.framework/Protobuf Binary files differnew file mode 100644 index 000000000..a64e60745 --- /dev/null +++ b/Libraries external/Firebase/MLVision/Protobuf.framework/Protobuf |