module Network.Google.AppsReseller.Types.Product where
import Network.Google.AppsReseller.Types.Sum
import Network.Google.Prelude
data SubscriptionTrialSettings = SubscriptionTrialSettings'
{ _stsIsInTrial :: !(Maybe Bool)
, _stsTrialEndTime :: !(Maybe (Textual Int64))
} deriving (Eq,Show,Data,Typeable,Generic)
subscriptionTrialSettings
:: SubscriptionTrialSettings
subscriptionTrialSettings =
SubscriptionTrialSettings'
{ _stsIsInTrial = Nothing
, _stsTrialEndTime = Nothing
}
stsIsInTrial :: Lens' SubscriptionTrialSettings (Maybe Bool)
stsIsInTrial
= lens _stsIsInTrial (\ s a -> s{_stsIsInTrial = a})
stsTrialEndTime :: Lens' SubscriptionTrialSettings (Maybe Int64)
stsTrialEndTime
= lens _stsTrialEndTime
(\ s a -> s{_stsTrialEndTime = a})
. mapping _Coerce
instance FromJSON SubscriptionTrialSettings where
parseJSON
= withObject "SubscriptionTrialSettings"
(\ o ->
SubscriptionTrialSettings' <$>
(o .:? "isInTrial") <*> (o .:? "trialEndTime"))
instance ToJSON SubscriptionTrialSettings where
toJSON SubscriptionTrialSettings'{..}
= object
(catMaybes
[("isInTrial" .=) <$> _stsIsInTrial,
("trialEndTime" .=) <$> _stsTrialEndTime])
data Address = Address'
{ _aOrganizationName :: !(Maybe Text)
, _aKind :: !Text
, _aPostalCode :: !(Maybe Text)
, _aAddressLine1 :: !(Maybe Text)
, _aLocality :: !(Maybe Text)
, _aContactName :: !(Maybe Text)
, _aAddressLine2 :: !(Maybe Text)
, _aCountryCode :: !(Maybe Text)
, _aRegion :: !(Maybe Text)
, _aAddressLine3 :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
address
:: Address
address =
Address'
{ _aOrganizationName = Nothing
, _aKind = "customers#address"
, _aPostalCode = Nothing
, _aAddressLine1 = Nothing
, _aLocality = Nothing
, _aContactName = Nothing
, _aAddressLine2 = Nothing
, _aCountryCode = Nothing
, _aRegion = Nothing
, _aAddressLine3 = Nothing
}
aOrganizationName :: Lens' Address (Maybe Text)
aOrganizationName
= lens _aOrganizationName
(\ s a -> s{_aOrganizationName = a})
aKind :: Lens' Address Text
aKind = lens _aKind (\ s a -> s{_aKind = a})
aPostalCode :: Lens' Address (Maybe Text)
aPostalCode
= lens _aPostalCode (\ s a -> s{_aPostalCode = a})
aAddressLine1 :: Lens' Address (Maybe Text)
aAddressLine1
= lens _aAddressLine1
(\ s a -> s{_aAddressLine1 = a})
aLocality :: Lens' Address (Maybe Text)
aLocality
= lens _aLocality (\ s a -> s{_aLocality = a})
aContactName :: Lens' Address (Maybe Text)
aContactName
= lens _aContactName (\ s a -> s{_aContactName = a})
aAddressLine2 :: Lens' Address (Maybe Text)
aAddressLine2
= lens _aAddressLine2
(\ s a -> s{_aAddressLine2 = a})
aCountryCode :: Lens' Address (Maybe Text)
aCountryCode
= lens _aCountryCode (\ s a -> s{_aCountryCode = a})
aRegion :: Lens' Address (Maybe Text)
aRegion = lens _aRegion (\ s a -> s{_aRegion = a})
aAddressLine3 :: Lens' Address (Maybe Text)
aAddressLine3
= lens _aAddressLine3
(\ s a -> s{_aAddressLine3 = a})
instance FromJSON Address where
parseJSON
= withObject "Address"
(\ o ->
Address' <$>
(o .:? "organizationName") <*>
(o .:? "kind" .!= "customers#address")
<*> (o .:? "postalCode")
<*> (o .:? "addressLine1")
<*> (o .:? "locality")
<*> (o .:? "contactName")
<*> (o .:? "addressLine2")
<*> (o .:? "countryCode")
<*> (o .:? "region")
<*> (o .:? "addressLine3"))
instance ToJSON Address where
toJSON Address'{..}
= object
(catMaybes
[("organizationName" .=) <$> _aOrganizationName,
Just ("kind" .= _aKind),
("postalCode" .=) <$> _aPostalCode,
("addressLine1" .=) <$> _aAddressLine1,
("locality" .=) <$> _aLocality,
("contactName" .=) <$> _aContactName,
("addressLine2" .=) <$> _aAddressLine2,
("countryCode" .=) <$> _aCountryCode,
("region" .=) <$> _aRegion,
("addressLine3" .=) <$> _aAddressLine3])
data Customer = Customer'
{ _cCustomerDomainVerified :: !(Maybe Bool)
, _cResourceUiURL :: !(Maybe Text)
, _cKind :: !Text
, _cCustomerId :: !(Maybe Text)
, _cAlternateEmail :: !(Maybe Text)
, _cCustomerDomain :: !(Maybe Text)
, _cPhoneNumber :: !(Maybe Text)
, _cPostalAddress :: !(Maybe Address)
} deriving (Eq,Show,Data,Typeable,Generic)
customer
:: Customer
customer =
Customer'
{ _cCustomerDomainVerified = Nothing
, _cResourceUiURL = Nothing
, _cKind = "reseller#customer"
, _cCustomerId = Nothing
, _cAlternateEmail = Nothing
, _cCustomerDomain = Nothing
, _cPhoneNumber = Nothing
, _cPostalAddress = Nothing
}
cCustomerDomainVerified :: Lens' Customer (Maybe Bool)
cCustomerDomainVerified
= lens _cCustomerDomainVerified
(\ s a -> s{_cCustomerDomainVerified = a})
cResourceUiURL :: Lens' Customer (Maybe Text)
cResourceUiURL
= lens _cResourceUiURL
(\ s a -> s{_cResourceUiURL = a})
cKind :: Lens' Customer Text
cKind = lens _cKind (\ s a -> s{_cKind = a})
cCustomerId :: Lens' Customer (Maybe Text)
cCustomerId
= lens _cCustomerId (\ s a -> s{_cCustomerId = a})
cAlternateEmail :: Lens' Customer (Maybe Text)
cAlternateEmail
= lens _cAlternateEmail
(\ s a -> s{_cAlternateEmail = a})
cCustomerDomain :: Lens' Customer (Maybe Text)
cCustomerDomain
= lens _cCustomerDomain
(\ s a -> s{_cCustomerDomain = a})
cPhoneNumber :: Lens' Customer (Maybe Text)
cPhoneNumber
= lens _cPhoneNumber (\ s a -> s{_cPhoneNumber = a})
cPostalAddress :: Lens' Customer (Maybe Address)
cPostalAddress
= lens _cPostalAddress
(\ s a -> s{_cPostalAddress = a})
instance FromJSON Customer where
parseJSON
= withObject "Customer"
(\ o ->
Customer' <$>
(o .:? "customerDomainVerified") <*>
(o .:? "resourceUiUrl")
<*> (o .:? "kind" .!= "reseller#customer")
<*> (o .:? "customerId")
<*> (o .:? "alternateEmail")
<*> (o .:? "customerDomain")
<*> (o .:? "phoneNumber")
<*> (o .:? "postalAddress"))
instance ToJSON Customer where
toJSON Customer'{..}
= object
(catMaybes
[("customerDomainVerified" .=) <$>
_cCustomerDomainVerified,
("resourceUiUrl" .=) <$> _cResourceUiURL,
Just ("kind" .= _cKind),
("customerId" .=) <$> _cCustomerId,
("alternateEmail" .=) <$> _cAlternateEmail,
("customerDomain" .=) <$> _cCustomerDomain,
("phoneNumber" .=) <$> _cPhoneNumber,
("postalAddress" .=) <$> _cPostalAddress])
data ChangePlanRequest = ChangePlanRequest'
{ _cprKind :: !Text
, _cprDealCode :: !(Maybe Text)
, _cprPlanName :: !(Maybe Text)
, _cprPurchaseOrderId :: !(Maybe Text)
, _cprSeats :: !(Maybe Seats)
} deriving (Eq,Show,Data,Typeable,Generic)
changePlanRequest
:: ChangePlanRequest
changePlanRequest =
ChangePlanRequest'
{ _cprKind = "subscriptions#changePlanRequest"
, _cprDealCode = Nothing
, _cprPlanName = Nothing
, _cprPurchaseOrderId = Nothing
, _cprSeats = Nothing
}
cprKind :: Lens' ChangePlanRequest Text
cprKind = lens _cprKind (\ s a -> s{_cprKind = a})
cprDealCode :: Lens' ChangePlanRequest (Maybe Text)
cprDealCode
= lens _cprDealCode (\ s a -> s{_cprDealCode = a})
cprPlanName :: Lens' ChangePlanRequest (Maybe Text)
cprPlanName
= lens _cprPlanName (\ s a -> s{_cprPlanName = a})
cprPurchaseOrderId :: Lens' ChangePlanRequest (Maybe Text)
cprPurchaseOrderId
= lens _cprPurchaseOrderId
(\ s a -> s{_cprPurchaseOrderId = a})
cprSeats :: Lens' ChangePlanRequest (Maybe Seats)
cprSeats = lens _cprSeats (\ s a -> s{_cprSeats = a})
instance FromJSON ChangePlanRequest where
parseJSON
= withObject "ChangePlanRequest"
(\ o ->
ChangePlanRequest' <$>
(o .:? "kind" .!= "subscriptions#changePlanRequest")
<*> (o .:? "dealCode")
<*> (o .:? "planName")
<*> (o .:? "purchaseOrderId")
<*> (o .:? "seats"))
instance ToJSON ChangePlanRequest where
toJSON ChangePlanRequest'{..}
= object
(catMaybes
[Just ("kind" .= _cprKind),
("dealCode" .=) <$> _cprDealCode,
("planName" .=) <$> _cprPlanName,
("purchaseOrderId" .=) <$> _cprPurchaseOrderId,
("seats" .=) <$> _cprSeats])
data SubscriptionPlanCommitmentInterval = SubscriptionPlanCommitmentInterval'
{ _spciStartTime :: !(Maybe (Textual Int64))
, _spciEndTime :: !(Maybe (Textual Int64))
} deriving (Eq,Show,Data,Typeable,Generic)
subscriptionPlanCommitmentInterval
:: SubscriptionPlanCommitmentInterval
subscriptionPlanCommitmentInterval =
SubscriptionPlanCommitmentInterval'
{ _spciStartTime = Nothing
, _spciEndTime = Nothing
}
spciStartTime :: Lens' SubscriptionPlanCommitmentInterval (Maybe Int64)
spciStartTime
= lens _spciStartTime
(\ s a -> s{_spciStartTime = a})
. mapping _Coerce
spciEndTime :: Lens' SubscriptionPlanCommitmentInterval (Maybe Int64)
spciEndTime
= lens _spciEndTime (\ s a -> s{_spciEndTime = a}) .
mapping _Coerce
instance FromJSON SubscriptionPlanCommitmentInterval
where
parseJSON
= withObject "SubscriptionPlanCommitmentInterval"
(\ o ->
SubscriptionPlanCommitmentInterval' <$>
(o .:? "startTime") <*> (o .:? "endTime"))
instance ToJSON SubscriptionPlanCommitmentInterval
where
toJSON SubscriptionPlanCommitmentInterval'{..}
= object
(catMaybes
[("startTime" .=) <$> _spciStartTime,
("endTime" .=) <$> _spciEndTime])
data SubscriptionPlan = SubscriptionPlan'
{ _spCommitmentInterval :: !(Maybe SubscriptionPlanCommitmentInterval)
, _spIsCommitmentPlan :: !(Maybe Bool)
, _spPlanName :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
subscriptionPlan
:: SubscriptionPlan
subscriptionPlan =
SubscriptionPlan'
{ _spCommitmentInterval = Nothing
, _spIsCommitmentPlan = Nothing
, _spPlanName = Nothing
}
spCommitmentInterval :: Lens' SubscriptionPlan (Maybe SubscriptionPlanCommitmentInterval)
spCommitmentInterval
= lens _spCommitmentInterval
(\ s a -> s{_spCommitmentInterval = a})
spIsCommitmentPlan :: Lens' SubscriptionPlan (Maybe Bool)
spIsCommitmentPlan
= lens _spIsCommitmentPlan
(\ s a -> s{_spIsCommitmentPlan = a})
spPlanName :: Lens' SubscriptionPlan (Maybe Text)
spPlanName
= lens _spPlanName (\ s a -> s{_spPlanName = a})
instance FromJSON SubscriptionPlan where
parseJSON
= withObject "SubscriptionPlan"
(\ o ->
SubscriptionPlan' <$>
(o .:? "commitmentInterval") <*>
(o .:? "isCommitmentPlan")
<*> (o .:? "planName"))
instance ToJSON SubscriptionPlan where
toJSON SubscriptionPlan'{..}
= object
(catMaybes
[("commitmentInterval" .=) <$> _spCommitmentInterval,
("isCommitmentPlan" .=) <$> _spIsCommitmentPlan,
("planName" .=) <$> _spPlanName])
data Subscriptions = Subscriptions'
{ _sNextPageToken :: !(Maybe Text)
, _sKind :: !Text
, _sSubscriptions :: !(Maybe [Subscription])
} deriving (Eq,Show,Data,Typeable,Generic)
subscriptions
:: Subscriptions
subscriptions =
Subscriptions'
{ _sNextPageToken = Nothing
, _sKind = "reseller#subscriptions"
, _sSubscriptions = Nothing
}
sNextPageToken :: Lens' Subscriptions (Maybe Text)
sNextPageToken
= lens _sNextPageToken
(\ s a -> s{_sNextPageToken = a})
sKind :: Lens' Subscriptions Text
sKind = lens _sKind (\ s a -> s{_sKind = a})
sSubscriptions :: Lens' Subscriptions [Subscription]
sSubscriptions
= lens _sSubscriptions
(\ s a -> s{_sSubscriptions = a})
. _Default
. _Coerce
instance FromJSON Subscriptions where
parseJSON
= withObject "Subscriptions"
(\ o ->
Subscriptions' <$>
(o .:? "nextPageToken") <*>
(o .:? "kind" .!= "reseller#subscriptions")
<*> (o .:? "subscriptions" .!= mempty))
instance ToJSON Subscriptions where
toJSON Subscriptions'{..}
= object
(catMaybes
[("nextPageToken" .=) <$> _sNextPageToken,
Just ("kind" .= _sKind),
("subscriptions" .=) <$> _sSubscriptions])
data Seats = Seats'
{ _seaNumberOfSeats :: !(Maybe (Textual Int32))
, _seaMaximumNumberOfSeats :: !(Maybe (Textual Int32))
, _seaLicensedNumberOfSeats :: !(Maybe (Textual Int32))
, _seaKind :: !Text
} deriving (Eq,Show,Data,Typeable,Generic)
seats
:: Seats
seats =
Seats'
{ _seaNumberOfSeats = Nothing
, _seaMaximumNumberOfSeats = Nothing
, _seaLicensedNumberOfSeats = Nothing
, _seaKind = "subscriptions#seats"
}
seaNumberOfSeats :: Lens' Seats (Maybe Int32)
seaNumberOfSeats
= lens _seaNumberOfSeats
(\ s a -> s{_seaNumberOfSeats = a})
. mapping _Coerce
seaMaximumNumberOfSeats :: Lens' Seats (Maybe Int32)
seaMaximumNumberOfSeats
= lens _seaMaximumNumberOfSeats
(\ s a -> s{_seaMaximumNumberOfSeats = a})
. mapping _Coerce
seaLicensedNumberOfSeats :: Lens' Seats (Maybe Int32)
seaLicensedNumberOfSeats
= lens _seaLicensedNumberOfSeats
(\ s a -> s{_seaLicensedNumberOfSeats = a})
. mapping _Coerce
seaKind :: Lens' Seats Text
seaKind = lens _seaKind (\ s a -> s{_seaKind = a})
instance FromJSON Seats where
parseJSON
= withObject "Seats"
(\ o ->
Seats' <$>
(o .:? "numberOfSeats") <*>
(o .:? "maximumNumberOfSeats")
<*> (o .:? "licensedNumberOfSeats")
<*> (o .:? "kind" .!= "subscriptions#seats"))
instance ToJSON Seats where
toJSON Seats'{..}
= object
(catMaybes
[("numberOfSeats" .=) <$> _seaNumberOfSeats,
("maximumNumberOfSeats" .=) <$>
_seaMaximumNumberOfSeats,
("licensedNumberOfSeats" .=) <$>
_seaLicensedNumberOfSeats,
Just ("kind" .= _seaKind)])
data RenewalSettings = RenewalSettings'
{ _rsKind :: !Text
, _rsRenewalType :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
renewalSettings
:: RenewalSettings
renewalSettings =
RenewalSettings'
{ _rsKind = "subscriptions#renewalSettings"
, _rsRenewalType = Nothing
}
rsKind :: Lens' RenewalSettings Text
rsKind = lens _rsKind (\ s a -> s{_rsKind = a})
rsRenewalType :: Lens' RenewalSettings (Maybe Text)
rsRenewalType
= lens _rsRenewalType
(\ s a -> s{_rsRenewalType = a})
instance FromJSON RenewalSettings where
parseJSON
= withObject "RenewalSettings"
(\ o ->
RenewalSettings' <$>
(o .:? "kind" .!= "subscriptions#renewalSettings")
<*> (o .:? "renewalType"))
instance ToJSON RenewalSettings where
toJSON RenewalSettings'{..}
= object
(catMaybes
[Just ("kind" .= _rsKind),
("renewalType" .=) <$> _rsRenewalType])
data Subscription = Subscription'
{ _subCreationTime :: !(Maybe (Textual Int64))
, _subBillingMethod :: !(Maybe Text)
, _subStatus :: !(Maybe Text)
, _subTrialSettings :: !(Maybe SubscriptionTrialSettings)
, _subResourceUiURL :: !(Maybe Text)
, _subKind :: !Text
, _subSKUId :: !(Maybe Text)
, _subPlan :: !(Maybe SubscriptionPlan)
, _subDealCode :: !(Maybe Text)
, _subCustomerId :: !(Maybe Text)
, _subCustomerDomain :: !(Maybe Text)
, _subSuspensionReasons :: !(Maybe [Text])
, _subTransferInfo :: !(Maybe SubscriptionTransferInfo)
, _subPurchaseOrderId :: !(Maybe Text)
, _subSeats :: !(Maybe Seats)
, _subRenewalSettings :: !(Maybe RenewalSettings)
, _subSubscriptionId :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
subscription
:: Subscription
subscription =
Subscription'
{ _subCreationTime = Nothing
, _subBillingMethod = Nothing
, _subStatus = Nothing
, _subTrialSettings = Nothing
, _subResourceUiURL = Nothing
, _subKind = "reseller#subscription"
, _subSKUId = Nothing
, _subPlan = Nothing
, _subDealCode = Nothing
, _subCustomerId = Nothing
, _subCustomerDomain = Nothing
, _subSuspensionReasons = Nothing
, _subTransferInfo = Nothing
, _subPurchaseOrderId = Nothing
, _subSeats = Nothing
, _subRenewalSettings = Nothing
, _subSubscriptionId = Nothing
}
subCreationTime :: Lens' Subscription (Maybe Int64)
subCreationTime
= lens _subCreationTime
(\ s a -> s{_subCreationTime = a})
. mapping _Coerce
subBillingMethod :: Lens' Subscription (Maybe Text)
subBillingMethod
= lens _subBillingMethod
(\ s a -> s{_subBillingMethod = a})
subStatus :: Lens' Subscription (Maybe Text)
subStatus
= lens _subStatus (\ s a -> s{_subStatus = a})
subTrialSettings :: Lens' Subscription (Maybe SubscriptionTrialSettings)
subTrialSettings
= lens _subTrialSettings
(\ s a -> s{_subTrialSettings = a})
subResourceUiURL :: Lens' Subscription (Maybe Text)
subResourceUiURL
= lens _subResourceUiURL
(\ s a -> s{_subResourceUiURL = a})
subKind :: Lens' Subscription Text
subKind = lens _subKind (\ s a -> s{_subKind = a})
subSKUId :: Lens' Subscription (Maybe Text)
subSKUId = lens _subSKUId (\ s a -> s{_subSKUId = a})
subPlan :: Lens' Subscription (Maybe SubscriptionPlan)
subPlan = lens _subPlan (\ s a -> s{_subPlan = a})
subDealCode :: Lens' Subscription (Maybe Text)
subDealCode
= lens _subDealCode (\ s a -> s{_subDealCode = a})
subCustomerId :: Lens' Subscription (Maybe Text)
subCustomerId
= lens _subCustomerId
(\ s a -> s{_subCustomerId = a})
subCustomerDomain :: Lens' Subscription (Maybe Text)
subCustomerDomain
= lens _subCustomerDomain
(\ s a -> s{_subCustomerDomain = a})
subSuspensionReasons :: Lens' Subscription [Text]
subSuspensionReasons
= lens _subSuspensionReasons
(\ s a -> s{_subSuspensionReasons = a})
. _Default
. _Coerce
subTransferInfo :: Lens' Subscription (Maybe SubscriptionTransferInfo)
subTransferInfo
= lens _subTransferInfo
(\ s a -> s{_subTransferInfo = a})
subPurchaseOrderId :: Lens' Subscription (Maybe Text)
subPurchaseOrderId
= lens _subPurchaseOrderId
(\ s a -> s{_subPurchaseOrderId = a})
subSeats :: Lens' Subscription (Maybe Seats)
subSeats = lens _subSeats (\ s a -> s{_subSeats = a})
subRenewalSettings :: Lens' Subscription (Maybe RenewalSettings)
subRenewalSettings
= lens _subRenewalSettings
(\ s a -> s{_subRenewalSettings = a})
subSubscriptionId :: Lens' Subscription (Maybe Text)
subSubscriptionId
= lens _subSubscriptionId
(\ s a -> s{_subSubscriptionId = a})
instance FromJSON Subscription where
parseJSON
= withObject "Subscription"
(\ o ->
Subscription' <$>
(o .:? "creationTime") <*> (o .:? "billingMethod")
<*> (o .:? "status")
<*> (o .:? "trialSettings")
<*> (o .:? "resourceUiUrl")
<*> (o .:? "kind" .!= "reseller#subscription")
<*> (o .:? "skuId")
<*> (o .:? "plan")
<*> (o .:? "dealCode")
<*> (o .:? "customerId")
<*> (o .:? "customerDomain")
<*> (o .:? "suspensionReasons" .!= mempty)
<*> (o .:? "transferInfo")
<*> (o .:? "purchaseOrderId")
<*> (o .:? "seats")
<*> (o .:? "renewalSettings")
<*> (o .:? "subscriptionId"))
instance ToJSON Subscription where
toJSON Subscription'{..}
= object
(catMaybes
[("creationTime" .=) <$> _subCreationTime,
("billingMethod" .=) <$> _subBillingMethod,
("status" .=) <$> _subStatus,
("trialSettings" .=) <$> _subTrialSettings,
("resourceUiUrl" .=) <$> _subResourceUiURL,
Just ("kind" .= _subKind),
("skuId" .=) <$> _subSKUId, ("plan" .=) <$> _subPlan,
("dealCode" .=) <$> _subDealCode,
("customerId" .=) <$> _subCustomerId,
("customerDomain" .=) <$> _subCustomerDomain,
("suspensionReasons" .=) <$> _subSuspensionReasons,
("transferInfo" .=) <$> _subTransferInfo,
("purchaseOrderId" .=) <$> _subPurchaseOrderId,
("seats" .=) <$> _subSeats,
("renewalSettings" .=) <$> _subRenewalSettings,
("subscriptionId" .=) <$> _subSubscriptionId])
data SubscriptionTransferInfo = SubscriptionTransferInfo'
{ _stiTransferabilityExpirationTime :: !(Maybe (Textual Int64))
, _stiMinimumTransferableSeats :: !(Maybe (Textual Int32))
} deriving (Eq,Show,Data,Typeable,Generic)
subscriptionTransferInfo
:: SubscriptionTransferInfo
subscriptionTransferInfo =
SubscriptionTransferInfo'
{ _stiTransferabilityExpirationTime = Nothing
, _stiMinimumTransferableSeats = Nothing
}
stiTransferabilityExpirationTime :: Lens' SubscriptionTransferInfo (Maybe Int64)
stiTransferabilityExpirationTime
= lens _stiTransferabilityExpirationTime
(\ s a -> s{_stiTransferabilityExpirationTime = a})
. mapping _Coerce
stiMinimumTransferableSeats :: Lens' SubscriptionTransferInfo (Maybe Int32)
stiMinimumTransferableSeats
= lens _stiMinimumTransferableSeats
(\ s a -> s{_stiMinimumTransferableSeats = a})
. mapping _Coerce
instance FromJSON SubscriptionTransferInfo where
parseJSON
= withObject "SubscriptionTransferInfo"
(\ o ->
SubscriptionTransferInfo' <$>
(o .:? "transferabilityExpirationTime") <*>
(o .:? "minimumTransferableSeats"))
instance ToJSON SubscriptionTransferInfo where
toJSON SubscriptionTransferInfo'{..}
= object
(catMaybes
[("transferabilityExpirationTime" .=) <$>
_stiTransferabilityExpirationTime,
("minimumTransferableSeats" .=) <$>
_stiMinimumTransferableSeats])