// Copyright © 2019 650 Industries. All rights reserved. #import #import @class EXUpdatesDatabase; NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSInteger, EXUpdatesUpdateStatus) { EXUpdatesUpdateStatusFailed = 0, EXUpdatesUpdateStatusReady = 1, EXUpdatesUpdateStatusLaunchable = 2, EXUpdatesUpdateStatusPending = 3, EXUpdatesUpdateStatusUnused = 4, EXUpdatesUpdateStatusEmbedded = 5, EXUpdatesUpdateStatusDevelopment = 6 }; @interface EXUpdatesUpdate : NSObject @property (nonatomic, strong, readonly) NSUUID *updateId; @property (nonatomic, strong, readonly) NSString *scopeKey; @property (nonatomic, strong, readonly) NSDate *commitTime; @property (nonatomic, strong, readonly) NSString *runtimeVersion; @property (nonatomic, strong, readonly, nullable) NSDictionary * metadata; @property (nonatomic, assign, readonly) BOOL keep; @property (nonatomic, strong, readonly) NSArray *assets; @property (nonatomic, assign, readonly) BOOL isDevelopmentMode; @property (nonatomic, strong, readonly) NSDictionary *rawManifest; @property (nonatomic, assign) EXUpdatesUpdateStatus status; + (instancetype)updateWithId:(NSUUID *)updateId scopeKey:(NSString *)scopeKey commitTime:(NSDate *)commitTime runtimeVersion:(NSString *)runtimeVersion metadata:(nullable NSDictionary *)metadata status:(EXUpdatesUpdateStatus)status keep:(BOOL)keep config:(EXUpdatesConfig *)config database:(EXUpdatesDatabase *)database; + (instancetype)updateWithManifest:(NSDictionary *)manifest config:(EXUpdatesConfig *)config database:(EXUpdatesDatabase *)database; + (instancetype)updateWithEmbeddedManifest:(NSDictionary *)manifest config:(EXUpdatesConfig *)config database:(nullable EXUpdatesDatabase *)database; @end NS_ASSUME_NONNULL_END