{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2024-12-01",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"invoicing",
    "jsonVersion":"1.0",
    "protocol":"json",
    "protocols":["json"],
    "serviceFullName":"AWS Invoicing",
    "serviceId":"Invoicing",
    "signatureVersion":"v4",
    "signingName":"invoicing",
    "targetPrefix":"Invoicing",
    "uid":"invoicing-2024-12-01"
  },
  "operations":{
    "BatchGetInvoiceProfile":{
      "name":"BatchGetInvoiceProfile",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"BatchGetInvoiceProfileRequest"},
      "output":{"shape":"BatchGetInvoiceProfileResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>This gets the invoice profile associated with a set of accounts. The accounts must be linked accounts under the requester management account organization.</p>"
    },
    "CreateInvoiceUnit":{
      "name":"CreateInvoiceUnit",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateInvoiceUnitRequest"},
      "output":{"shape":"CreateInvoiceUnitResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>This creates a new invoice unit with the provided definition.</p>"
    },
    "DeleteInvoiceUnit":{
      "name":"DeleteInvoiceUnit",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteInvoiceUnitRequest"},
      "output":{"shape":"DeleteInvoiceUnitResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>This deletes an invoice unit with the provided invoice unit ARN. </p>"
    },
    "GetInvoiceUnit":{
      "name":"GetInvoiceUnit",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetInvoiceUnitRequest"},
      "output":{"shape":"GetInvoiceUnitResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>This retrieves the invoice unit definition.</p>"
    },
    "ListInvoiceUnits":{
      "name":"ListInvoiceUnits",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListInvoiceUnitsRequest"},
      "output":{"shape":"ListInvoiceUnitsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>This fetches a list of all invoice unit definitions for a given account, as of the provided <code>AsOf</code> date.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists the tags for a resource. </p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Adds a tag to a resource. </p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p> Removes a tag from a resource. </p>"
    },
    "UpdateInvoiceUnit":{
      "name":"UpdateInvoiceUnit",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateInvoiceUnitRequest"},
      "output":{"shape":"UpdateInvoiceUnitResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>You can update the invoice unit configuration at any time, and Amazon Web Services will use the latest configuration at the end of the month.</p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"BasicString"},
        "resourceName":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p>You don't have sufficient access to perform this action. </p>"
        }
      },
      "documentation":"<p>You don't have sufficient access to perform this action.</p>",
      "exception":true
    },
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"AccountIdString"},
      "max":1000,
      "min":1
    },
    "AccountIdString":{
      "type":"string",
      "pattern":"\\d{12}"
    },
    "AsOfTimestamp":{"type":"timestamp"},
    "BasicString":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"\\S+"
    },
    "BatchGetInvoiceProfileRequest":{
      "type":"structure",
      "required":["AccountIds"],
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>Retrieves the corresponding invoice profile data for these account IDs. </p>"
        }
      }
    },
    "BatchGetInvoiceProfileResponse":{
      "type":"structure",
      "members":{
        "Profiles":{
          "shape":"ProfileList",
          "documentation":"<p> A list of invoice profiles corresponding to the requested accounts. </p>"
        }
      }
    },
    "CreateInvoiceUnitRequest":{
      "type":"structure",
      "required":[
        "Name",
        "InvoiceReceiver",
        "Rule"
      ],
      "members":{
        "Name":{
          "shape":"InvoiceUnitName",
          "documentation":"<p> The unique name of the invoice unit that is shown on the generated invoice. This can't be changed once it is set. To change this name, you must delete the invoice unit recreate. </p>"
        },
        "InvoiceReceiver":{
          "shape":"AccountIdString",
          "documentation":"<p> The Amazon Web Services account ID chosen to be the receiver of an invoice unit. All invoices generated for that invoice unit will be sent to this account ID. </p>"
        },
        "Description":{
          "shape":"DescriptionString",
          "documentation":"<p> The invoice unit's description. This can be changed at a later time. </p>"
        },
        "TaxInheritanceDisabled":{
          "shape":"TaxInheritanceDisabledFlag",
          "documentation":"<p>Whether the invoice unit based tax inheritance is/ should be enabled or disabled. </p>"
        },
        "Rule":{
          "shape":"InvoiceUnitRule",
          "documentation":"<p>The <code>InvoiceUnitRule</code> object used to create invoice units. </p>"
        },
        "ResourceTags":{
          "shape":"ResourceTagList",
          "documentation":"<p> The tag structure that contains a tag key and value. </p>"
        }
      }
    },
    "CreateInvoiceUnitResponse":{
      "type":"structure",
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        }
      }
    },
    "DeleteInvoiceUnitRequest":{
      "type":"structure",
      "required":["InvoiceUnitArn"],
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        }
      }
    },
    "DeleteInvoiceUnitResponse":{
      "type":"structure",
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        }
      }
    },
    "DescriptionString":{
      "type":"string",
      "max":500,
      "min":0,
      "pattern":"[\\S\\s]*"
    },
    "Filters":{
      "type":"structure",
      "members":{
        "Names":{
          "shape":"InvoiceUnitNames",
          "documentation":"<p> An optional input to the list API. You can specify a list of invoice unit names inside filters to return invoice units that match only the specified invoice unit names. If multiple names are provided, the result is an <code>OR</code> condition (match any) of the specified invoice unit names. </p>"
        },
        "InvoiceReceivers":{
          "shape":"AccountIdList",
          "documentation":"<p> You can specify a list of Amazon Web Services account IDs inside filters to return invoice units that match only the specified accounts. If multiple accounts are provided, the result is an <code>OR</code> condition (match any) of the specified accounts. This filter only matches the specified accounts on the invoice receivers of the invoice units. </p>"
        },
        "Accounts":{
          "shape":"AccountIdList",
          "documentation":"<p> You can specify a list of Amazon Web Services account IDs inside filters to return invoice units that match only the specified accounts. If multiple accounts are provided, the result is an <code>OR</code> condition (match any) of the specified accounts. The specified account IDs are matched with either the receiver or the linked accounts in the rules. </p>"
        }
      },
      "documentation":"<p>An optional input to the list API. If multiple filters are specified, the returned list will be a configuration that match all of the provided filters. Supported filter types are <code>InvoiceReceivers</code>, <code>Names</code>, and <code>Accounts</code>. </p>"
    },
    "GetInvoiceUnitRequest":{
      "type":"structure",
      "required":["InvoiceUnitArn"],
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        },
        "AsOf":{
          "shape":"AsOfTimestamp",
          "documentation":"<p> The state of an invoice unit at a specified time. You can see legacy invoice units that are currently deleted if the <code>AsOf</code> time is set to before it was deleted. If an <code>AsOf</code> is not provided, the default value is the current time. </p>"
        }
      }
    },
    "GetInvoiceUnitResponse":{
      "type":"structure",
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        },
        "InvoiceReceiver":{
          "shape":"AccountIdString",
          "documentation":"<p> The Amazon Web Services account ID chosen to be the receiver of an invoice unit. All invoices generated for that invoice unit will be sent to this account ID. </p>"
        },
        "Name":{
          "shape":"InvoiceUnitName",
          "documentation":"<p> The unique name of the invoice unit that is shown on the generated invoice. </p>"
        },
        "Description":{
          "shape":"DescriptionString",
          "documentation":"<p> The assigned description for an invoice unit. </p>"
        },
        "TaxInheritanceDisabled":{
          "shape":"TaxInheritanceDisabledFlag",
          "documentation":"<p> Whether the invoice unit based tax inheritance is/ should be enabled or disabled. </p>",
          "box":true
        },
        "Rule":{"shape":"InvoiceUnitRule"},
        "LastModified":{
          "shape":"LastModifiedTimestamp",
          "documentation":"<p> The most recent date the invoice unit response was updated. </p>"
        }
      }
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>The processing request failed because of an unknown error, exception, or failure.</p>"
        },
        "message":{"shape":"BasicString"}
      },
      "documentation":"<p>The processing request failed because of an unknown error, exception, or failure. </p>",
      "exception":true,
      "fault":true
    },
    "InvoiceProfile":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AccountIdString",
          "documentation":"<p> The account ID the invoice profile is generated for. </p>"
        },
        "ReceiverName":{
          "shape":"BasicString",
          "documentation":"<p> The name of the person receiving the invoice profile. </p>"
        },
        "ReceiverAddress":{
          "shape":"ReceiverAddress",
          "documentation":"<p>The address of the receiver that will be printed on the invoice. </p>"
        },
        "ReceiverEmail":{
          "shape":"SensitiveBasicString",
          "documentation":"<p>The email address for the invoice profile receiver. </p>"
        },
        "Issuer":{
          "shape":"BasicString",
          "documentation":"<p> This specifies the issuing entity of the invoice. </p>"
        },
        "TaxRegistrationNumber":{
          "shape":"SensitiveBasicString",
          "documentation":"<p> Your Tax Registration Number (TRN) information. </p>"
        }
      },
      "documentation":"<p> Contains high-level information about the invoice receiver. </p>"
    },
    "InvoiceUnit":{
      "type":"structure",
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p>ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        },
        "InvoiceReceiver":{
          "shape":"AccountIdString",
          "documentation":"<p>The account that receives invoices related to the invoice unit. </p>"
        },
        "Name":{
          "shape":"InvoiceUnitName",
          "documentation":"<p> A unique name that is distinctive within your Amazon Web Services. </p>"
        },
        "Description":{
          "shape":"DescriptionString",
          "documentation":"<p>The assigned description for an invoice unit. This information can't be modified or deleted. </p>"
        },
        "TaxInheritanceDisabled":{
          "shape":"TaxInheritanceDisabledFlag",
          "documentation":"<p>Whether the invoice unit based tax inheritance is/ should be enabled or disabled. </p>",
          "box":true
        },
        "Rule":{
          "shape":"InvoiceUnitRule",
          "documentation":"<p> An <code>InvoiceUnitRule</code> object used the categorize invoice units. </p>"
        },
        "LastModified":{
          "shape":"LastModifiedTimestamp",
          "documentation":"<p> The last time the invoice unit was updated. This is important to determine the version of invoice unit configuration used to create the invoices. Any invoice created after this modified time will use this invoice unit configuration. </p>"
        }
      },
      "documentation":"<p>An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. Invoice units allow you separate Amazon Web Services account costs and configures your invoice for each business entity going forward. </p>"
    },
    "InvoiceUnitArnString":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+"
    },
    "InvoiceUnitName":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"(?! )[\\p{L}\\p{N}\\p{Z}-_]*(?<! )"
    },
    "InvoiceUnitNames":{
      "type":"list",
      "member":{"shape":"InvoiceUnitName"}
    },
    "InvoiceUnitRule":{
      "type":"structure",
      "members":{
        "LinkedAccounts":{
          "shape":"AccountIdList",
          "documentation":"<p>The list of <code>LINKED_ACCOUNT</code> IDs where charges are included within the invoice unit. </p>"
        }
      },
      "documentation":"<p> This is used to categorize the invoice unit. Values are Amazon Web Services account IDs. Currently, the only supported rule is <code>LINKED_ACCOUNT</code>. </p>"
    },
    "InvoiceUnits":{
      "type":"list",
      "member":{"shape":"InvoiceUnit"}
    },
    "LastModifiedTimestamp":{"type":"timestamp"},
    "ListInvoiceUnitsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"Filters",
          "documentation":"<p> An optional input to the list API. If multiple filters are specified, the returned list will be a configuration that match all of the provided filters. Supported filter types are <code>InvoiceReceivers</code>, <code>Names</code>, and <code>Accounts</code>. </p>"
        },
        "NextToken":{
          "shape":"NextTokenString",
          "documentation":"<p>The next token used to indicate where the returned list should start from. </p>"
        },
        "MaxResults":{
          "shape":"MaxResultsInteger",
          "documentation":"<p>The maximum number of invoice units that can be returned. </p>"
        },
        "AsOf":{
          "shape":"AsOfTimestamp",
          "documentation":"<p> The state of an invoice unit at a specified time. You can see legacy invoice units that are currently deleted if the <code>AsOf</code> time is set to before it was deleted. If an <code>AsOf</code> is not provided, the default value is the current time. </p>"
        }
      }
    },
    "ListInvoiceUnitsResponse":{
      "type":"structure",
      "members":{
        "InvoiceUnits":{
          "shape":"InvoiceUnits",
          "documentation":"<p> An invoice unit is a set of mutually exclusive accounts that correspond to your business entity. </p>"
        },
        "NextToken":{
          "shape":"NextTokenString",
          "documentation":"<p>The next token used to indicate where the returned list should start from. </p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["ResourceArn"],
      "members":{
        "ResourceArn":{
          "shape":"TagrisArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of tags to list. </p>"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "ResourceTags":{
          "shape":"ResourceTagList",
          "documentation":"<p> Adds a tag to a resource. </p>"
        }
      }
    },
    "MaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":500,
      "min":1
    },
    "NextTokenString":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"[\\S\\s]*"
    },
    "ProfileList":{
      "type":"list",
      "member":{"shape":"InvoiceProfile"}
    },
    "ReceiverAddress":{
      "type":"structure",
      "members":{
        "AddressLine1":{
          "shape":"BasicString",
          "documentation":"<p> The first line of the address. </p>"
        },
        "AddressLine2":{
          "shape":"BasicString",
          "documentation":"<p> The second line of the address, if applicable. </p>"
        },
        "AddressLine3":{
          "shape":"BasicString",
          "documentation":"<p> The third line of the address, if applicable. </p>"
        },
        "DistrictOrCounty":{
          "shape":"BasicString",
          "documentation":"<p> The district or country the address is located in. </p>"
        },
        "City":{
          "shape":"BasicString",
          "documentation":"<p> The city that the address is in. </p>"
        },
        "StateOrRegion":{
          "shape":"BasicString",
          "documentation":"<p> The state, region, or province the address is located. </p>"
        },
        "CountryCode":{
          "shape":"BasicString",
          "documentation":"<p> The country code for the country the address is in. </p>"
        },
        "CompanyName":{
          "shape":"BasicString",
          "documentation":"<p> A unique company name. </p>"
        },
        "PostalCode":{
          "shape":"BasicString",
          "documentation":"<p> The postal code associated with the address. </p>"
        }
      },
      "documentation":"<p> The details of the address associated with the receiver. </p>",
      "sensitive":true
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"BasicString"},
        "resourceName":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p>The resource could not be found.</p>"
        }
      },
      "documentation":"<p>The resource could not be found. </p>",
      "exception":true
    },
    "ResourceTag":{
      "type":"structure",
      "required":[
        "Key",
        "Value"
      ],
      "members":{
        "Key":{
          "shape":"ResourceTagKey",
          "documentation":"<p>The object key of your of your resource tag. </p>"
        },
        "Value":{
          "shape":"ResourceTagValue",
          "documentation":"<p> The specific value of the resource tag. </p>"
        }
      },
      "documentation":"<p>The tag structure that contains a tag key and value. </p>"
    },
    "ResourceTagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "ResourceTagKeyList":{
      "type":"list",
      "member":{"shape":"ResourceTagKey"},
      "max":200,
      "min":0
    },
    "ResourceTagList":{
      "type":"list",
      "member":{"shape":"ResourceTag"},
      "max":200,
      "min":0
    },
    "ResourceTagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "SensitiveBasicString":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"\\S+",
      "sensitive":true
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"BasicString"}
      },
      "documentation":"<p>The request was rejected because it attempted to create resources beyond the current Amazon Web Services account limits. The error message describes the limit exceeded. </p>",
      "exception":true
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceArn",
        "ResourceTags"
      ],
      "members":{
        "ResourceArn":{
          "shape":"TagrisArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the tags. </p>"
        },
        "ResourceTags":{
          "shape":"ResourceTagList",
          "documentation":"<p> Adds a tag to a resource. </p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "TagrisArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+"
    },
    "TaxInheritanceDisabledFlag":{"type":"boolean"},
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"BasicString"}
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "exception":true
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceArn",
        "ResourceTagKeys"
      ],
      "members":{
        "ResourceArn":{
          "shape":"TagrisArn",
          "documentation":"<p> The Amazon Resource Name (ARN) to untag. </p>"
        },
        "ResourceTagKeys":{
          "shape":"ResourceTagKeyList",
          "documentation":"<p> Keys for the tags to be removed. </p>"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateInvoiceUnitRequest":{
      "type":"structure",
      "required":["InvoiceUnitArn"],
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p>The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        },
        "Description":{
          "shape":"DescriptionString",
          "documentation":"<p>The assigned description for an invoice unit. This information can't be modified or deleted. </p>"
        },
        "TaxInheritanceDisabled":{
          "shape":"TaxInheritanceDisabledFlag",
          "documentation":"<p>Whether the invoice unit based tax inheritance is/ should be enabled or disabled. </p>",
          "box":true
        },
        "Rule":{
          "shape":"InvoiceUnitRule",
          "documentation":"<p>The <code>InvoiceUnitRule</code> object used to update invoice units. </p>"
        }
      }
    },
    "UpdateInvoiceUnitResponse":{
      "type":"structure",
      "members":{
        "InvoiceUnitArn":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p> The ARN to identify an invoice unit. This information can't be modified or deleted. </p>"
        }
      }
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"BasicString"},
        "resourceName":{
          "shape":"InvoiceUnitArnString",
          "documentation":"<p>You don't have sufficient access to perform this action. </p>"
        },
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>You don't have sufficient access to perform this action. </p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p> The input fails to satisfy the constraints specified by an Amazon Web Services service. </p>"
        }
      },
      "documentation":"<p> The input fails to satisfy the constraints specified by an Amazon Web Services service. </p>",
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"BasicString",
          "documentation":"<p> The input fails to satisfy the constraints specified by an Amazon Web Services service. </p>"
        },
        "message":{
          "shape":"BasicString",
          "documentation":"<p> The input fails to satisfy the constraints specified by an Amazon Web Services service. </p>"
        }
      },
      "documentation":"<p> The input fails to satisfy the constraints specified by an Amazon Web Services service. </p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "nonMemberPresent",
        "maxAccountsExceeded",
        "maxInvoiceUnitsExceeded",
        "duplicateInvoiceUnit",
        "mutualExclusionError",
        "accountMembershipError",
        "taxSettingsError",
        "expiredNextToken",
        "invalidNextToken",
        "invalidInput",
        "fieldValidationFailed",
        "cannotParse",
        "unknownOperation",
        "other"
      ]
    }
  },
  "documentation":"<p> <b>Amazon Web Services Invoice Configuration</b> </p> <p>You can use Amazon Web Services Invoice Configuration APIs to programmatically create, update, delete, get, and list invoice units. You can also programmatically fetch the information of the invoice receiver. For example, business legal name, address, and invoicing contacts. </p> <p>You can use Amazon Web Services Invoice Configuration to receive separate Amazon Web Services invoices based your organizational needs. By using Amazon Web Services Invoice Configuration, you can configure invoice units that are groups of Amazon Web Services accounts that represent your business entities, and receive separate invoices for each business entity. You can also assign a unique member or payer account as the invoice receiver for each invoice unit. As you create new accounts within your Organizations using Amazon Web Services Invoice Configuration APIs, you can automate the creation of new invoice units and subsequently automate the addition of new accounts to your invoice units.</p> <p>Service endpoint</p> <p>You can use the following endpoints for Amazon Web Services Invoice Configuration:</p> <ul> <li> <p> <code>https://invoicing.us-east-1.api.aws</code> </p> </li> </ul>"
}
