description: "Following [Advanced Attributes](09.%20Advanced%20Attributes.md), this example demonstrates defining arbitrary data structure to be reused by various attribute descriptions. \n\nSince a portion of the `Coupon` data structure is shared between the `Coupon` definition itself and the `Create a Coupon` action, it was separated into a `Coupon Base` data structure in the `Data Strucutes` API Blueprint Section. Doing so enables us to reuse it as a base-type of other attribute definitions.\n\n## API Blueprint\n\n+ [Previous: Advanced Attributes](09.%20Advanced%20Attributes.md)\n\n+ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/10.%20Data%20Structures.md)\n\n+ [Next: Resource Model](11.%20Resource%20Model.md)\
Improving the previous [Attributes](08.%20Attributes.md) description example, this API example describes the `Coupon` resource attributes (data structure) regardless of the serialization format. These attributes can be later referenced using the resource name
These attributes are then reused in the `Retrieve a Coupon` action. Since they describe the complete message, no explicit JSON body example is needed.
Moving forward, the `Coupon` resource data structure is then reused when defining the attributes of the coupons collection resource – `Coupons`.
The `Create a Coupon` action also demonstrate the description of request attributes – once defined, these attributes are implied on every `Create a Coupon` request unless the request specifies otherwise. Apparently, the description of action attributes is somewhat duplicate to the definition of `Coupon` resource attributes. We will address this in the next [Data Structures](10.%20Data%20Structures.md) example.
description: "# Converted to MSON and Attributes\n\nThis is an API.\n\n### GET\n\nConverted to MSON and Attributes\n\n+ Response 200 (application/json)\n\n + Attributes (object)\n + month (number) - The month we want to fetch data for.\n + Values\n + `1`\n + `2`\n + `3`\n + `4`\n + `5`\n + `6`\n + `7`\n + `8`\n + `9`\n + `10`\n + `11`\n + `12`\n + year (number) - The year we want to fetch data for.\n + reportSourceId (string)\n\n The report source ID, as returned by the reportSources service.\n\n + reportSourceType (string)\n\n The report source type, as returned by the reportSources service.\n\n + statisticType (string)\n\
Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in _includes/themes/bootstrap-3/default.html, included in _layouts/page.html
/Users/jrepenni/.rvm/gems/ruby-2.1.2@open-deployment/gems/jekyll-2.1.1/lib/jekyll/tags/include.rb:114:in `rescue in render': incompatible character encodings: UTF-8 and ASCII-8BIT (Jekyll::Tags::IncludeTagError)
from /Users/jrepenni/.rvm/gems/ruby-2.1.2@open-deployment/gems/jekyll-2.1.1/lib/jekyll/tags/include.rb:106:in `render'
from /Users/jrepenni/.rvm/gems/ruby-2.1.2@open-deployment/gems/liquid-2.6.1/lib/liquid/block.rb:109:in `block in ren