v3.10.0.1

Derivative Instruments - Notional Amounts of Derivatives Outstanding (Details) - USD ($) $ in Millions | Sep. 30, 2018 | Dec. 31, 2017
--- | --- | ---
Derivatives, Fair Value [Line Items] |  |
Notional amount | $ 8,110 | $ 6,739
Foreign Exchange Contract | Designated as Hedging Instrument | Cash Flow Hedging |  |
Derivatives, Fair Value [Line Items] |  |
Notional amount | 1,857 | 1,990
Foreign Exchange Contract | Designated as Hedging Instrument | Net Investment Hedging |  |
Derivatives, Fair Value [Line Items] |  |
Notional amount | 1,002 | 0
Foreign Exchange Contract | Not Designated as Hedging Instrument |  |
Derivatives, Fair Value [Line Items] |  |
Notional amount | 2,851 | 2,349
Interest Rate Contract | Designated as Hedging Instrument | Fair Value Hedging |  |
Derivatives, Fair Value [Line Items] |  |
Notional amount | $ 2,400 | $ 2,400

X
- Definition Aggregate notional amount specified by the derivative(s). Expressed as an absolute value. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Article 12 -Section 13 -Sentence Column B + Details
Name: | invest_DerivativeNotionalAmount
Namespace Prefix: | invest_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | instant

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_DerivativesFairValueLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeContractMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis=us-gaap_CashFlowHedgingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis=us-gaap_NetInvestmentHedgingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateContractMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis=us-gaap_FairValueHedgingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |