FORMAT: 1A

# Data Structures API
Following [Advanced Attributes](09.%20Advanced%20Attributes.md), this example demonstrates defining arbitrary data structure to be reused by various attribute descriptions.

Since 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 Structures` API Blueprint Section. Doing so enables us to reuse it as a base-type of other attribute definitions.

## API Blueprint
+ [Previous: Advanced Attributes](09.%20Advanced%20Attributes.md)
+ [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/10.%20Data%20Structures.md)
+ [Next: Resource Model](11.%20Resource%20Model.md)

# Group Coupons

## Coupons [/coupons]

### List all Coupons [GET]
Returns a list of your coupons.

+ Parameters

    + limit (number, optional)

        A limit on the number of objects to be returned. Limit can range between 1 and 100 items.

        + Default: `10`

+ Response 200 (application/json)

    + Attributes (array[Coupon])

### Create a Coupon [POST]
Creates a new Coupon.

+ Request (application/json)

+ Response 200 (application/json)

    + Attributes (Coupon)



## Coupon [/coupons/{id}]
A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer.

### Retrieve a Coupon [GET]
Retrieves the coupon with the given ID.

+ Parameters

    + id (string)

        The ID of the desired coupon.


+ Response 200 (application/json)

    + Attributes (Coupon)


# Data Structures

## Coupon (object)
+ created: 1415203908 (number) - Time stamp
+ id: 250FF (string)
+ percent_off: 25 (number)

    A positive integer between 1 and 100 that represents the discount the coupon will apply.

+ redeem_by (number) - Date after which the coupon can no longer be redeemed

