# Common

Primitives shared across every service.

## Money

```protobuf
message Money {
  string currency_code = 1;
  int64 amount_cents = 2;
}
```

## Date

```protobuf
message Date {
  int32 year = 1;
  int32 month = 2;
  int32 day = 3;
}
```

## IntervalRequest

```protobuf
message IntervalRequest {
  optional Date start_date = 1;
  optional Date end_date = 2;
}
```

**References:** [Date](/core-data-types/common#date)

## NonDiscreteIntervalRequest

```protobuf
message NonDiscreteIntervalRequest {
  enum Cadence {
    UNKNOWN_CADENCE = 0;
    MONTHLY = 1;
    WEEKLY = 2;
    DAILY = 3;
    ANNUALLY = 4;
  }

  IntervalRequest interval = 1;
  Cadence granularity = 2;
}
```

**References:** [IntervalRequest](/core-data-types/common#intervalrequest)

## LookbackType

```protobuf
enum LookbackType {
  UNKNOWN_LOOKBACK = 0;
  TO_DATE = 1;
  PER_PERIOD = 2;
}
```

## Search

```protobuf
message Search {
  oneof criteria {
    string exact_match = 1;
    string query = 2;
  }
  optional int32 max_results = 3;
}
```

## Blob

```protobuf
message Blob {
  string mime_type = 1;
  bytes data = 2;
}
```