/
OPTLYFeatureFlag.h
56 lines (49 loc) · 2.6 KB
/
OPTLYFeatureFlag.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/****************************************************************************
* Copyright 2017, Optimizely, Inc. and contributors *
* *
* 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>
#ifdef UNIVERSAL
#import "OPTLYJSONModelLib.h"
#else
#import <OptimizelySDKCore/OPTLYJSONModelLib.h>
#endif
@class OPTLYProjectConfig, OPTLYFeatureVariable;
@protocol OPTLYFeatureVariable;
@protocol OPTLYFeatureFlag
@end
@interface OPTLYFeatureFlag : OPTLYJSONModel
/// an NSString to hold feature flag ID
@property (nonatomic, strong, nonnull) NSString *flagId;
/// an NSString to hold feature flag Key
@property (nonatomic, strong, nonnull) NSString *key;
/// an NSString to hold the ID of the rollout that is attached to this feature flag
@property (nonatomic, strong, nonnull) NSString *rolloutId;
/// an NSArray of the IDs of the experiments the feature flag is attached to.
@property (nonatomic, strong, nonnull) NSArray<NSString *> *experimentIds;
/// an NSArray of the feature variables that are part of this feature
@property (nonatomic, strong, nonnull) NSArray<OPTLYFeatureVariable> *variables;
/// an NSString to hold the group Id the feature belongs to.
@property (nonatomic, strong, nullable) NSString<OPTLYOptional> *groupId;
/**
* Determines whether all the experiments in the feature flag belongs to the same mutex group
* @param config The project config object.
* @return YES if feature belongs to the same mutex group.
*/
- (BOOL)isValid:(nonnull OPTLYProjectConfig *)config;
/**
* Get Feature Variable object for a key.
*/
- (nullable OPTLYFeatureVariable *)getFeatureVariableForKey:(nonnull NSString *)variableKey;
@end