{-# LANGUAGE TemplateHaskell #-}moduleAWS.EC2.Types.Instance(ConsoleOutput(..),EbsInstanceBlockDevice(..),IamInstanceProfile(..),Instance(..),InstanceAttribute(..),InstanceAttributeRequest(..),InstanceBlockDeviceMapping(..),InstanceLifecycle(..),InstanceMonitoringState(..),InstanceNetworkInterface(..),InstanceNetworkInterfaceAssociation(..),InstanceNetworkInterfaceAttachment(..),InstancePrivateIpAddress(..),InstanceState(..),InstanceStateChange(..),InstanceStatus(..),InstanceStatusDetail(..),InstanceStatusDetailName,InstanceStatusDetailStatus,InstanceStatusEvent(..),InstanceStatusEventCode(..),InstanceStatusType(..),InstanceStatusTypeStatus(..),ModifyInstanceAttributeRequest(..),MonitorInstancesResponse(..),PasswordData(..),Reservation(..),ResetInstanceAttributeRequest(..),RunInstancesRequest(..))whereimportData.ByteString(ByteString)importAWS.ClassimportAWS.EC2.Types.CommonimportAWS.EC2.Types.Image(BlockDeviceMappingParam)importAWS.EC2.Types.NetworkInterface(NetworkInterfaceParam)importAWS.EC2.Types.Volume(AttachmentSetItemResponseStatus)importAWS.Lib.FromTextdataConsoleOutput=ConsoleOutput{consoleOutputInstanceId::Text,consoleOutputTimestamp::UTCTime-- ^ The time the data was last updated.,consoleOutputOutput::Text}deriving(Show,Read,Eq)dataEbsInstanceBlockDevice=EbsInstanceBlockDevice{ebsInstanceBlockDeviceVolumeId::Text,ebsInstanceBlockDeviceState::AttachmentSetItemResponseStatus,ebsInstanceBlockDeviceAttachTime::UTCTime,ebsInstanceBlockDeviceDeleteOnTermination::Bool}deriving(Show,Read,Eq)dataIamInstanceProfile=IamInstanceProfile{iamInstanceProfileArn::Text,iamInstanceProfileId::Text}deriving(Show,Read,Eq)dataInstance=Instance{instanceId::Text,instanceImageId::Text,instanceState::InstanceState,instancePrivateDnsName::MaybeText,instanceDnsName::MaybeText,instanceReason::MaybeText,instanceKeyName::MaybeText,instanceAmiLaunchIndex::Text,instanceProductCodes::[ProductCode],instanceType::Text,instanceLaunchTime::UTCTime,instancePlacement::Placement,instanceKernelId::MaybeText,instanceRamdiskId::MaybeText,instancePlatform::MaybeText,instanceMonitoring::InstanceMonitoringState,instanceSubnetId::MaybeText,instanceVpcId::MaybeText,instancePrivateIpAddress::MaybeIPv4,instanceIpAddress::MaybeIPv4,instanceSourceDestCheck::MaybeBool,instancevpcGroupSet::[Group],instanceStateReason::MaybeStateReason,instanceArchitecture::Architecture,instanceRootDeviceType::RootDeviceType,instanceRootDeviceName::MaybeText,instanceBlockDeviceMappings::[InstanceBlockDeviceMapping],instanceInstanceLifecycle::MaybeInstanceLifecycle,instanceSpotInstanceRequestId::MaybeText,instanceVirtualizationType::VirtualizationType,instanceClientToken::MaybeText,instanceTagSet::[ResourceTag],instanceHypervisor::Hypervisor,instanceNetworkInterfaceSet::[InstanceNetworkInterface],instanceIamInstanceProfile::MaybeIamInstanceProfile,instanceEbsOptimized::Bool-- default: false}deriving(Show,Read,Eq)dataInstanceAttribute=InstanceAttributeInstanceTypeText|InstanceAttributeKernelId(MaybeText)|InstanceAttributeRamdiskId(MaybeText)|InstanceAttributeUserData(MaybeText)|InstanceAttributeDisableApiTerminationBool|InstanceAttributeShutdownBehaviorShutdownBehavior|InstanceAttributeRootDeviceName(MaybeText)|InstanceAttributeBlockDeviceMapping[InstanceBlockDeviceMapping]|InstanceAttributeSourceDestCheck(MaybeBool)|InstanceAttributeGroupSet[Text]|InstanceAttributeProductCodes[ProductCode]|InstanceAttributeEbsOptimizedBoolderiving(Show,Read,Eq)dataInstanceAttributeRequest=InstanceAttributeRequestInstanceType|InstanceAttributeRequestKernelId|InstanceAttributeRequestRamdiskId|InstanceAttributeRequestUserData|InstanceAttributeRequestDisableApiTermination|InstanceAttributeRequestShutdownBehavior|InstanceAttributeRequestRootDeviceName|InstanceAttributeRequestBlockDeviceMapping|InstanceAttributeRequestSourceDestCheck|InstanceAttributeRequestGroupSet|InstanceAttributeRequestProductCodes|InstanceAttributeRequestEbsOptimizedderiving(Show,Eq,Ord)dataInstanceBlockDeviceMapping=InstanceBlockDeviceMapping{instanceBlockDeviceMappingDeviceName::Text,instanceBlockDeviceMappingEbs::EbsInstanceBlockDevice}deriving(Show,Read,Eq)dataInstanceLifecycle=LifecycleSpot|LifecycleNonederiving(Show,Read,Eq)instanceFromTextInstanceLifecyclewherefromMaybeText_nameNothing=returnLifecycleNonefromMaybeText_name(Justt)|t=="spot"=returnLifecycleSpot|otherwise=monadThrow$TextConversionExceptiontdataInstanceMonitoringState=MonitoringDisabled|MonitoringEnabled|MonitoringPending|MonitoringDisablingderiving(Show,Read,Eq)dataInstanceNetworkInterface=InstanceNetworkInterface{instanceNetworkInterfaceId::Text,instanceNetworkInterfaceSubnetId::MaybeText,instanceNetworkInterfaceVpcId::MaybeText,instanceNetworkInterfaceDescription::MaybeText,instanceNetworkInterfaceOwnerId::Text,instanceNetworkInterfaceStatus::Text,instanceNetworkInterfaceMacAddress::MaybeText,instanceNetworkInterfacePrivateIpAddress::MaybeIPv4,instanceNetworkInterfacePrivateDnsName::MaybeText,instanceNetworkInterfaceSourceDestCheck::MaybeBool,instanceNetworkInterfaceGroupSet::[Group],instanceNetworkInterfaceAttachment::InstanceNetworkInterfaceAttachment,instanceNetworkInterfaceAssociation::MaybeInstanceNetworkInterfaceAssociation,instanceNetworkInterfacePrivateIpAddressesSet::[InstancePrivateIpAddress]}deriving(Show,Read,Eq)dataInstanceNetworkInterfaceAssociation=InstanceNetworkInterfaceAssociation{instanceNetworkInterfaceAssociationPublicIp::IPv4,instanceNetworkInterfaceAssociationPublicDnsName::MaybeText,instanceNetworkInterfaceAssociationIpOwnerId::Text}deriving(Show,Read,Eq)dataInstanceNetworkInterfaceAttachment=InstanceNetworkInterfaceAttachment{instanceNetworkInterfaceAttachmentId::Text,instanceNetworkInterfaceAttachmentDeviceIndex::Int,instanceNetworkInterfaceAttachmentStatus::Text,instanceNetworkInterfaceAttachmentAttachTime::UTCTime,instanceNetworkInterfaceAttachmentDeleteOnTermination::Bool}deriving(Show,Read,Eq)dataInstancePrivateIpAddress=InstancePrivateIpAddress{instancePrivateIpAddressAddress::IPv4,instancePrivateIpAddressDnsName::MaybeText,instancePrivateIpAddressPrimary::Bool,instancePrivateIpAddressAssociation::MaybeInstanceNetworkInterfaceAssociation}deriving(Show,Read,Eq)dataInstanceState=InstanceStatePending|InstanceStateRunning|InstanceStateShuttingDown|InstanceStateTerminated|InstanceStateStopping|InstanceStateStopped|InstanceStateUnknownIntderiving(Show,Read,Eq)dataInstanceStateChange=InstanceStateChange{instanceStateChangeInstanceId::Text,instanceStateChangeCurrentState::InstanceState,instanceStateChangePreviousState::InstanceState}deriving(Show,Read,Eq)dataInstanceStatus=InstanceStatus{instanceStatusInstanceId::Text,instanceStatusAvailabilityZone::Text,instanceStatusEventsSet::[InstanceStatusEvent],instanceStatusInstanceState::InstanceState,instanceStatusSystemStatus::InstanceStatusType,instanceStatusInstanceStatus::InstanceStatusType}deriving(Show,Read,Eq)dataInstanceStatusDetail=InstanceStatusDetail{instanceStatusDetailName::InstanceStatusDetailName,instanceStatusDetailStatus::InstanceStatusDetailStatus,instanceStatusDetailImpairedSince::MaybeUTCTime}deriving(Show,Read,Eq)typeInstanceStatusDetailName=TexttypeInstanceStatusDetailStatus=TextdataInstanceStatusEvent=InstanceStatusEvent{instanceStatusEventCode::InstanceStatusEventCode,instanceStatusEventDescription::Text,instanceStatusEventNotBefore::MaybeUTCTime,instanceStatusEventNotAfter::MaybeUTCTime}deriving(Show,Read,Eq)dataInstanceStatusEventCode=InstanceStatusEventCodeInstanceReboot|InstanceStatusEventCodeInstanceStop|InstanceStatusEventCodeSystemReboot|InstanceStatusEventCodeInstanceRetirementderiving(Show,Read,Eq)dataInstanceStatusType=InstanceStatusType{instanceStatusTypeStatus::InstanceStatusTypeStatus,instanceStatusTypeDetails::[InstanceStatusDetail]}deriving(Show,Read,Eq)dataInstanceStatusTypeStatus=InstanceStatusTypeStatusOK|InstanceStatusTypeStatusImpaired|InstanceStatusTypeStatusInsufficientData|InstanceStatusTypeStatusNotApplicable|InstanceStatusTypeStatusInitializingderiving(Show,Read,Eq)dataModifyInstanceAttributeRequest=ModifyInstanceAttributeRequestInstanceTypeText|ModifyInstanceAttributeRequestKernelIdText|ModifyInstanceAttributeRequestRamdiskIdText|ModifyInstanceAttributeRequestUserDataText|ModifyInstanceAttributeRequestDisableApiTerminationBool|ModifyInstanceAttributeRequestShutdownBehaviorShutdownBehavior|ModifyInstanceAttributeRequestRootDeviceNameText|ModifyInstanceAttributeRequestBlockDeviceMapping[BlockDeviceMappingParam]|ModifyInstanceAttributeRequestSourceDestCheckBool|ModifyInstanceAttributeRequestGroupSet[Text]|ModifyInstanceAttributeRequestEbsOptimizedBoolderiving(Show,Read,Eq)dataMonitorInstancesResponse=MonitorInstancesResponse{monitorInstancesResponseInstanceId::Text,monitorInstancesResponseInstanceMonitoringState::InstanceMonitoringState}deriving(Show,Read,Eq)dataPasswordData=PasswordData{passwordDataInstanceId::Text,passwordDataTimestamp::UTCTime-- ^ The time the data was last updated.,passwordDataPasswordData::Text}deriving(Show,Read,Eq)dataReservation=Reservation{reservationId::Text,reservationOwnerId::Text,reservationGroupSet::[Group],reservationInstanceSet::[Instance],reservationRequesterId::MaybeText}deriving(Show,Read,Eq)dataResetInstanceAttributeRequest=ResetInstanceAttributeRequestKernel|ResetInstanceAttributeRequestRamdisk|ResetInstanceAttributeRequestSourceDestCheckderiving(Show,Read,Eq)dataRunInstancesRequest=RunInstancesRequest{runInstancesRequestImageId::Text-- ^ Required,runInstancesRequestMinCount::Int-- ^ Required,runInstancesRequestMaxCount::Int-- ^ Required,runInstancesRequestKeyName::MaybeText,runInstancesRequestSecurityGroupIds::[Text]-- ^ SecurityGroupIds (Required for VPC; optional for EC2),runInstancesRequestSecurityGroups::[Text]-- ^ SecurityGroups (Only for EC2; either id or name is accepted),runInstancesRequestUserData::MaybeByteString-- ^ UserData (Base64-encoded MIME user data),runInstancesRequestInstanceType::MaybeText,runInstancesRequestAvailabilityZone::MaybeText,runInstancesRequestPlacementGroup::MaybeText,runInstancesRequestTenancy::MaybeText,runInstancesRequestKernelId::MaybeText,runInstancesRequestRamdiskId::MaybeText,runInstancesRequestBlockDeviceMappings::[BlockDeviceMappingParam],runInstancesRequestMonitoringEnabled::MaybeBool,runInstancesRequestSubnetId::MaybeText,runInstancesRequestDisableApiTermination::MaybeBool,runInstancesRequestShutdownBehavior::MaybeShutdownBehavior,runInstancesRequestPrivateIpAddress::MaybeIPv4,runInstancesRequestClientToken::MaybeText,runInstancesRequestNetworkInterfaces::[NetworkInterfaceParam],runInstancesRequestIamInstanceProfile::MaybeIamInstanceProfile,runInstancesRequestEbsOptimized::MaybeBool}deriving(Show,Read,Eq)deriveFromText"InstanceMonitoringState"["disabled","enabled","pending","disabling"]deriveFromText"InstanceStatusEventCode"["instance-reboot","instance-stop","system-reboot","instance-retirement"]deriveFromText"InstanceStatusTypeStatus"["ok","impaired","insufficient-data","not-applicable","initializing"]