class CoinbaseSubscriptionInfo {

    private final String id;
    private final Date createdAt;
    private final CoinbaseRecurringPaymentStatus status;
    private final String custom;
    private final CoinbaseButton button;

    private CoinbaseSubscriptionInfo(
        @JsonProperty("id") final String id,
        @JsonProperty("created_at") @JsonDeserialize(using = ISO8601DateDeserializer.class)
            final Date createdAt,
        @JsonProperty("status") final CoinbaseRecurringPaymentStatus status,
        @JsonProperty("custom") final String custom,
        @JsonProperty("button") final CoinbaseButtonInfo button) {

      this.id = id;
      this.createdAt = createdAt;
      this.status = status;
      this.custom = custom;
      this.button = new CoinbaseButton(button);
    }

    public String getId() {

      return id;
    }

    public Date getCreatedAt() {

      return createdAt;
    }

    public CoinbaseRecurringPaymentStatus getStatus() {

      return status;
    }

    public String getCustom() {

      return custom;
    }

    public CoinbaseButton getButton() {

      return button;
    }

    @Override
    public String toString() {<FILL_FUNCTION_BODY>}
  }


      return "CoinbaseSubscriptionInfo [id="
          + id
          + ", createdAt="
          + createdAt
          + ", status="
          + status
          + ", custom="
          + custom
          + ", button="
          + button
          + "]";
    
<no_super_class>