> ## Documentation Index
> Fetch the complete documentation index at: https://confidence.spotify.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Computespacecalendar Segment

> Compute a calendar view of space availability over time for a set of segments
 with prospective start and end dates. This allows planning segment
 allocation by showing how much space will be available on each date
 in the requested range.



## OpenAPI

````yaml /api/flags/api/segment.openapi.json post /v1/segments:computeSegmentSpaceCalendar
openapi: 3.1.0
info:
  title: Confidence Segment API
  version: 1.0.0
  description: API documentation for segment
servers: []
security: []
paths:
  /v1/segments:computeSegmentSpaceCalendar:
    post:
      summary: Computespacecalendar Segment
      description: >-
        Compute a calendar view of space availability over time for a set of
        segments
         with prospective start and end dates. This allows planning segment
         allocation by showing how much space will be available on each date
         in the requested range.
      operationId: Segment.computespacecalendar
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                startDate:
                  type: object
                  properties:
                    year:
                      type: object
                      description: >-
                        Year of the date. Must be from 1 to 9999, or 0 to
                        specify a date without
                         a year.
                    month:
                      type: object
                      description: >-
                        Month of a year. Must be from 1 to 12, or 0 to specify a
                        year without a
                         month and day.
                    day:
                      type: object
                      description: >-
                        Day of a month. Must be from 1 to 31 and valid for the
                        year and month, or 0
                         to specify a year by itself or a year and month where the day isn't
                         significant.
                  description: The start date of the calendar range.
                endDate:
                  type: object
                  properties:
                    year:
                      type: object
                      description: >-
                        Year of the date. Must be from 1 to 9999, or 0 to
                        specify a date without
                         a year.
                    month:
                      type: object
                      description: >-
                        Month of a year. Must be from 1 to 12, or 0 to specify a
                        year without a
                         month and day.
                    day:
                      type: object
                      description: >-
                        Day of a month. Must be from 1 to 31 and valid for the
                        year and month, or 0
                         to specify a year by itself or a year and month where the day isn't
                         significant.
                  description: The end date of the calendar range.
                segments:
                  type: array
                  items:
                    type: object
                    properties:
                      segment:
                        type: string
                        description: Resource reference to a segment.
                      startDate:
                        type: object
                        properties:
                          year:
                            type: object
                            description: >-
                              Year of the date. Must be from 1 to 9999, or 0 to
                              specify a date without
                               a year.
                          month:
                            type: object
                            description: >-
                              Month of a year. Must be from 1 to 12, or 0 to
                              specify a year without a
                               month and day.
                          day:
                            type: object
                            description: >-
                              Day of a month. Must be from 1 to 31 and valid for
                              the year and month, or 0
                               to specify a year by itself or a year and month where the day isn't
                               significant.
                        description: The planned start date for this segment.
                      endDate:
                        type: object
                        properties:
                          year:
                            type: object
                            description: >-
                              Year of the date. Must be from 1 to 9999, or 0 to
                              specify a date without
                               a year.
                          month:
                            type: object
                            description: >-
                              Month of a year. Must be from 1 to 12, or 0 to
                              specify a year without a
                               month and day.
                          day:
                            type: object
                            description: >-
                              Day of a month. Must be from 1 to 31 and valid for
                              the year and month, or 0
                               to specify a year by itself or a year and month where the day isn't
                               significant.
                        description: The planned end date for this segment.
                    required:
                      - segment
                      - startDate
                      - endDate
                  description: The segments with their prospective start and end dates.
              required:
                - startDate
                - endDate
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  dailyAvailability:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: object
                          properties:
                            year:
                              type: object
                              description: >-
                                Year of the date. Must be from 1 to 9999, or 0
                                to specify a date without
                                 a year.
                            month:
                              type: object
                              description: >-
                                Month of a year. Must be from 1 to 12, or 0 to
                                specify a year without a
                                 month and day.
                            day:
                              type: object
                              description: >-
                                Day of a month. Must be from 1 to 31 and valid
                                for the year and month, or 0
                                 to specify a year by itself or a year and month where the day isn't
                                 significant.
                          description: The date.
                        availableSpace:
                          type: object
                          properties:
                            value:
                              type: string
                              description: |-
                                The decimal value, as a string.

                                 The string representation consists of an optional sign, `+` (`U+002B`)
                                 or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                                 ("the integer"), optionally followed by a fraction, optionally followed
                                 by an exponent.

                                 The fraction consists of a decimal point followed by zero or more decimal
                                 digits. The string must contain at least one digit in either the integer
                                 or the fraction. The number formed by the sign, the integer and the
                                 fraction is referred to as the significand.

                                 The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                                 followed by one or more decimal digits.

                                 Services **should** normalize decimal values before storing them by:

                                   - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                   - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                   - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                   - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                                 Services **may** perform additional normalization based on its own needs
                                 and the internal decimal implementation selected, such as shifting the
                                 decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                                 Additionally, services **may** preserve trailing zeroes in the fraction
                                 to indicate increased precision, but are not required to do so.

                                 Note that only the `.` character is supported to divide the integer
                                 and the fraction; `,` **should not** be supported regardless of locale.
                                 Additionally, thousand separators **should not** be supported. If a
                                 service does support them, values **must** be normalized.

                                 The ENBF grammar is:

                                     DecimalString =
                                       [Sign] Significand [Exponent];

                                     Sign = '+' | '-';

                                     Significand =
                                       Digits ['.'] [Digits] | [Digits] '.' Digits;

                                     Exponent = ('e' | 'E') [Sign] Digits;

                                     Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                                 Services **should** clearly document the range of supported values, the
                                 maximum supported precision (total number of digits), and, if applicable,
                                 the scale (number of digits after the decimal point), as well as how it
                                 behaves when receiving out-of-bounds values.

                                 Services **may** choose to accept values passed as input even when the
                                 value has a higher precision or scale than the service supports, and
                                 **should** round the value to fit the supported scale. Alternatively, the
                                 service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                                 if precision would be lost.

                                 Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                                 gRPC) if the service receives a value outside of the supported range.
                          description: The amount of space available on this date.
                        reclaimableSpace:
                          type: array
                          items:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                value:
                                  type: string
                                  description: |-
                                    The decimal value, as a string.

                                     The string representation consists of an optional sign, `+` (`U+002B`)
                                     or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                                     ("the integer"), optionally followed by a fraction, optionally followed
                                     by an exponent.

                                     The fraction consists of a decimal point followed by zero or more decimal
                                     digits. The string must contain at least one digit in either the integer
                                     or the fraction. The number formed by the sign, the integer and the
                                     fraction is referred to as the significand.

                                     The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                                     followed by one or more decimal digits.

                                     Services **should** normalize decimal values before storing them by:

                                       - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                       - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                       - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                       - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                                     Services **may** perform additional normalization based on its own needs
                                     and the internal decimal implementation selected, such as shifting the
                                     decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                                     Additionally, services **may** preserve trailing zeroes in the fraction
                                     to indicate increased precision, but are not required to do so.

                                     Note that only the `.` character is supported to divide the integer
                                     and the fraction; `,` **should not** be supported regardless of locale.
                                     Additionally, thousand separators **should not** be supported. If a
                                     service does support them, values **must** be normalized.

                                     The ENBF grammar is:

                                         DecimalString =
                                           [Sign] Significand [Exponent];

                                         Sign = '+' | '-';

                                         Significand =
                                           Digits ['.'] [Digits] | [Digits] '.' Digits;

                                         Exponent = ('e' | 'E') [Sign] Digits;

                                         Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                                     Services **should** clearly document the range of supported values, the
                                     maximum supported precision (total number of digits), and, if applicable,
                                     the scale (number of digits after the decimal point), as well as how it
                                     behaves when receiving out-of-bounds values.

                                     Services **may** choose to accept values passed as input even when the
                                     value has a higher precision or scale than the service supports, and
                                     **should** round the value to fit the supported scale. Alternatively, the
                                     service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                                     if precision would be lost.

                                     Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                                     gRPC) if the service receives a value outside of the supported range.
                          description: >-
                            The amount of space that would be returned if a
                            specific segment is archived.

                             The key is the resource name of the segment.
                             The value is the amount of space reclaimed.
                      required:
                        - date
                    description: >-
                      The space availability for each date in the requested
                      range.
      security:
        - admin: []
      servers:
        - url: https://flags.eu.confidence.dev
        - url: https://flags.us.confidence.dev
        - url: https://flags.confidence.dev
components:
  securitySchemes:
    admin:
      type: http
      scheme: bearer

````