@@ -31,7 +31,7 @@ def __init__(self, data=None, client=None):
3131 self ._name = data .get ('name' )
3232 self ._environment = data .get ('environment' )
3333 self ._trafficType = TrafficType (data .get ('trafficType' )) if 'trafficType' in data else {}
34- self ._creationTime = data .get ('creationTime' )
34+ self ._creationTime = data .get ('creationTime' ) if 'creationTime' in data else 0
3535
3636 @property
3737 def name (self ):
@@ -103,3 +103,29 @@ def remove_keys(self, json_data, apiclient=None):
103103 imc = require_client ('SegmentDefinition' , self ._client , apiclient )
104104 return imc .remove_keys (self ._name , self ._environment ['id' ], json_data )
105105
106+ def submit_change_request (self , keys , operation_type , title , comment , approvers , rollout_status_id , workspace_id , apiclient = None ):
107+ '''
108+ submit a change request for segment definition
109+
110+ :param data: ChangeRequest
111+ :param apiclient: If this instance wasn't returned by the client,
112+ the IdentifyClient instance should be passed in order to perform the
113+ http call
114+
115+ :returns: ChangeRequest object
116+ :rtype: ChangeRequest
117+ '''
118+ data = {
119+ 'segment' : {
120+ 'name' :self ._name ,
121+ 'keys' : keys ,
122+ },
123+ 'operationType' : operation_type ,
124+ 'title' : title ,
125+ 'comment' : comment ,
126+ 'approvers' : approvers ,
127+ }
128+ if rollout_status_id is not None :
129+ data ['rolloutStatus' ] = {'id' : rollout_status_id }
130+ imc = require_client ('ChangeRequest' , self ._client , apiclient )
131+ return imc .submit_change_request (self ._environment ['id' ], workspace_id , data )
0 commit comments