openapi: 3.0.1
servers:
  - url: https://bulkexports.twilio.com
info:
  contact:
    email: support@twilio.com
    name: Twilio Support
    url: https://support.twilio.com
  description: This is the public Twilio REST API.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://www.twilio.com/legal/tos
  title: Twilio - Bulkexports
  version: 1.55.0
  x-apisguru-categories:
    - telecom
    - messaging
  x-logo:
    url: https://static1.twilio.com/marketing/bundles/marketing/img/logos/wordmark-red.svg
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_bulkexports_v1.json
      version: "3.0"
  x-providerName: twilio.com
  x-serviceName: twilio_bulkexports_v1
tags:
  - name: BulkexportsV1Day
  - name: BulkexportsV1Export
  - name: BulkexportsV1ExportConfiguration
  - name: BulkexportsV1ExportCustomJob
  - name: BulkexportsV1Job
paths:
  /v1/Exports:
    description: "TODO: Resource-level docs"
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties: []
      dependentProperties:
        days:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Days
        export_custom_jobs:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Jobs
      pathType: list
  /v1/Exports/Jobs:
    description: "TODO: Resource-level docs"
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      parent: /Exports
      pathType: list
  /v1/Exports/Jobs/{JobSid}:
    delete:
      description: ""
      operationId: DeleteJob
      parameters:
        - description: The unique string that that we created to identify the Bulk Export job
          in: path
          name: JobSid
          required: true
          schema:
            maxLength: 34
            minLength: 34
            pattern: ^JS[0-9a-fA-F]{32}$
            type: string
      responses:
        "204":
          description: The resource was deleted successfully.
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1Job
      x-maturity:
        - GA
    description: "TODO: Resource-level docs"
    get:
      description: ""
      operationId: FetchJob
      parameters:
        - description: The unique string that that we created to identify the Bulk Export job
          in: path
          name: JobSid
          required: true
          schema:
            maxLength: 34
            minLength: 34
            pattern: ^JS[0-9a-fA-F]{32}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export.job"
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1Job
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      parent: /Exports
      pathType: instance
  /v1/Exports/{ResourceType}:
    description: "TODO: Resource-level docs"
    get:
      description: Fetch a specific Export.
      operationId: FetchExport
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export"
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1Export
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties: []
      dependentProperties:
        days:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Days
        export_custom_jobs:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Jobs
      pathType: instance
  /v1/Exports/{ResourceType}/Configuration:
    description: "TODO: Resource-level docs"
    get:
      description: Fetch a specific Export Configuration.
      operationId: FetchExportConfiguration
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export_configuration"
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1ExportConfiguration
      x-maturity:
        - GA
    post:
      description: Update a specific Export Configuration.
      operationId: UpdateExportConfiguration
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                Enabled:
                  description: If true, Twilio will automatically generate every day's file when the day is over.
                  type: boolean
                WebhookMethod:
                  description: Sets whether Twilio should call a webhook URL when the automatic generation is complete, using GET or POST. The actual destination is set in the webhook_url
                  type: string
                WebhookUrl:
                  description: Stores the URL destination for the method specified in webhook_method.
                  format: uri
                  type: string
              title: UpdateExportConfigurationRequest
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export_configuration"
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1ExportConfiguration
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - enabled
        - resource_type
        - url
        - webhook_method
        - webhook_url
      mountName: export_configuration
      pathType: instance
  /v1/Exports/{ResourceType}/Days:
    description: "TODO: Resource-level docs"
    get:
      description: Retrieve a list of all Days for a resource.
      operationId: ListDay
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
        - description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
          in: query
          name: PageSize
          schema:
            maximum: 1000
            minimum: 1
            type: integer
        - description: The page index. This value is simply for client state.
          in: query
          name: Page
          schema:
            minimum: 0
            type: integer
        - description: The page token. This is provided by the API.
          in: query
          name: PageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  days:
                    items:
                      $ref: "#/components/schemas/bulkexports.v1.export.day"
                    type: array
                  meta:
                    properties:
                      first_page_url:
                        format: uri
                        type: string
                      key:
                        type: string
                      next_page_url:
                        format: uri
                        nullable: true
                        type: string
                      page:
                        type: integer
                      page_size:
                        type: integer
                      previous_page_url:
                        format: uri
                        nullable: true
                        type: string
                      url:
                        format: uri
                        type: string
                    type: object
                title: ListDayResponse
                type: object
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1Day
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - friendly_name
        - create_date
        - day
        - resource_type
        - size
        - redirectTo
      parent: /Exports/{ResourceType}
      pathType: list
  /v1/Exports/{ResourceType}/Days/{Day}:
    description: "TODO: Resource-level docs"
    get:
      description: Fetch a specific Day.
      operationId: FetchDay
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
        - description: The ISO 8601 format date of the resources in the file, for a UTC day
          in: path
          name: Day
          required: true
          schema:
            type: string
      responses:
        "307":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export.day-instance"
          description: Temporary Redirect
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1Day
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - friendly_name
        - create_date
        - day
        - resource_type
        - size
        - redirectTo
      parent: /Exports/{ResourceType}
      pathType: instance
  /v1/Exports/{ResourceType}/Jobs:
    description: "TODO: Resource-level docs"
    get:
      description: ""
      operationId: ListExportCustomJob
      parameters:
        - description: The type of communication – Messages, Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
        - description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
          in: query
          name: PageSize
          schema:
            maximum: 1000
            minimum: 1
            type: integer
        - description: The page index. This value is simply for client state.
          in: query
          name: Page
          schema:
            minimum: 0
            type: integer
        - description: The page token. This is provided by the API.
          in: query
          name: PageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  jobs:
                    items:
                      $ref: "#/components/schemas/bulkexports.v1.export.export_custom_job"
                    type: array
                  meta:
                    properties:
                      first_page_url:
                        format: uri
                        type: string
                      key:
                        type: string
                      next_page_url:
                        format: uri
                        nullable: true
                        type: string
                      page:
                        type: integer
                      page_size:
                        type: integer
                      previous_page_url:
                        format: uri
                        nullable: true
                        type: string
                      url:
                        format: uri
                        type: string
                    type: object
                title: ListExportCustomJobResponse
                type: object
          description: OK
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1ExportCustomJob
      x-maturity:
        - GA
    post:
      description: ""
      operationId: CreateExportCustomJob
      parameters:
        - description: The type of communication – Messages or Calls, Conferences, and Participants
          in: path
          name: ResourceType
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                Email:
                  description: The optional email to send the completion notification to. You can set both webhook, and email, or one or the other. If you set neither, the job will run but you will have to query to determine your job's status.
                  type: string
                EndDay:
                  description: The end day for the custom export specified as a string in the format of yyyy-mm-dd. End day is inclusive and must be 2 days earlier than the current UTC day.
                  type: string
                FriendlyName:
                  description: The friendly name specified when creating the job
                  type: string
                StartDay:
                  description: The start day for the custom export specified as a string in the format of yyyy-mm-dd
                  type: string
                WebhookMethod:
                  description: This is the method used to call the webhook on completion of the job. If this is supplied, `WebhookUrl` must also be supplied.
                  type: string
                WebhookUrl:
                  description: The optional webhook url called on completion of the job. If this is supplied, `WebhookMethod` must also be supplied. If you set neither webhook nor email, you will have to check your job's status manually.
                  type: string
              required:
                - StartDay
                - EndDay
                - FriendlyName
              title: CreateExportCustomJobRequest
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bulkexports.v1.export.export_custom_job"
          description: Created
      security:
        - accountSid_authToken: []
      tags:
        - BulkexportsV1ExportCustomJob
      x-maturity:
        - GA
    servers:
      - url: https://bulkexports.twilio.com
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      mountName: export_custom_jobs
      parent: /Exports/{ResourceType}
      pathType: list
components:
  schemas:
    bulkexports.v1.export:
      properties:
        links:
          description: Contains a dictionary of URL links to nested resources of this Export.
          format: uri-map
          nullable: true
          type: object
        resource_type:
          description: The type of communication – Messages, Calls, Conferences, and Participants
          nullable: true
          type: string
        url:
          description: The URL of this resource.
          format: uri
          nullable: true
          type: string
      type: object
    bulkexports.v1.export.day:
      properties:
        create_date:
          description: The ISO 8601 format date when resources is created
          nullable: true
          type: string
        day:
          description: The ISO 8601 format date of the resources in the file, for a UTC day
          nullable: true
          type: string
        friendly_name:
          description: The friendly name specified when creating the job
          nullable: true
          type: string
        resource_type:
          description: The type of communication – Messages, Calls, Conferences, and Participants
          nullable: true
          type: string
        size:
          description: The size of the day's data file in bytes
          nullable: true
          type: integer
      type: object
    bulkexports.v1.export.day-instance:
      properties:
        redirect_to:
          format: uri
          nullable: true
          type: string
      type: object
    bulkexports.v1.export.export_custom_job:
      properties:
        details:
          description: The details of a job which is an object that contains an array of status grouped by `status` state.  Each `status` object has a `status` string, a count which is the number of days in that `status`, and list of days in that `status`. The day strings are in the format yyyy-MM-dd. As an example, a currently running job may have a status object for COMPLETED and a `status` object for SUBMITTED each with its own count and list of days.
          nullable: true
        email:
          description: The optional email to send the completion notification to
          nullable: true
          type: string
        end_day:
          description: The end day for the export specified when creating the job
          nullable: true
          type: string
        estimated_completion_time:
          description: this is the time estimated until your job is complete. This is calculated each time you request the job list. The time is calculated based on the current rate of job completion (which may vary) and your job queue position
          nullable: true
          type: string
        friendly_name:
          description: The friendly name specified when creating the job
          nullable: true
          type: string
        job_queue_position:
          description: This is the job position from the 1st in line. Your queue position will never increase. As jobs ahead of yours in the queue are processed, the queue position number will decrease
          nullable: true
          type: string
        job_sid:
          description: The unique job_sid returned when the custom export was created
          maxLength: 34
          minLength: 34
          nullable: true
          pattern: ^JS[0-9a-fA-F]{32}$
          type: string
        resource_type:
          description: The type of communication – Messages, Calls, Conferences, and Participants
          nullable: true
          type: string
        start_day:
          description: The start day for the custom export specified when creating the job
          nullable: true
          type: string
        webhook_method:
          description: This is the method used to call the webhook on completion of the job. If this is supplied, `WebhookUrl` must also be supplied.
          nullable: true
          type: string
        webhook_url:
          description: The optional webhook url called on completion of the job. If this is supplied, `WebhookMethod` must also be supplied.
          nullable: true
          type: string
      type: object
    bulkexports.v1.export.job:
      properties:
        details:
          description: The details of a job which is an object that contains an array of status grouped by `status` state.  Each `status` object has a `status` string, a count which is the number of days in that `status`, and list of days in that `status`. The day strings are in the format yyyy-MM-dd. As an example, a currently running job may have a status object for COMPLETED and a `status` object for SUBMITTED each with its own count and list of days.
          nullable: true
        email:
          description: The optional email to send the completion notification to
          nullable: true
          type: string
        end_day:
          description: The end time for the export specified when creating the job
          nullable: true
          type: string
        estimated_completion_time:
          description: this is the time estimated until your job is complete. This is calculated each time you request the job list. The time is calculated based on the current rate of job completion (which may vary) and your job queue position
          nullable: true
          type: string
        friendly_name:
          description: The friendly name specified when creating the job
          nullable: true
          type: string
        job_queue_position:
          description: This is the job position from the 1st in line. Your queue position will never increase. As jobs ahead of yours in the queue are processed, the queue position number will decrease
          nullable: true
          type: string
        job_sid:
          description: The job_sid returned when the export was created
          maxLength: 34
          minLength: 34
          nullable: true
          pattern: ^JS[0-9a-fA-F]{32}$
          type: string
        resource_type:
          description: The type of communication – Messages, Calls, Conferences, and Participants
          nullable: true
          type: string
        start_day:
          description: The start time for the export specified when creating the job
          nullable: true
          type: string
        url:
          format: uri
          nullable: true
          type: string
        webhook_method:
          description: This is the method used to call the webhook
          nullable: true
          type: string
        webhook_url:
          description: The optional webhook url called on completion
          nullable: true
          type: string
      type: object
    bulkexports.v1.export_configuration:
      properties:
        enabled:
          description: If true, Twilio will automatically generate every day's file when the day is over.
          nullable: true
          type: boolean
        resource_type:
          description: The type of communication – Messages, Calls, Conferences, and Participants
          nullable: true
          type: string
        url:
          description: The URL of this resource.
          format: uri
          nullable: true
          type: string
        webhook_method:
          description: Sets whether Twilio should call a webhook URL when the automatic generation is complete, using GET or POST. The actual destination is set in the webhook_url
          nullable: true
          type: string
        webhook_url:
          description: Stores the URL destination for the method specified in webhook_method.
          format: uri
          nullable: true
          type: string
      type: object
    export_custom_job_enum_status:
      enum:
        - ErrorDuringRun
        - Submitted
        - Running
        - CompletedEmptyRecords
        - Completed
        - Failed
        - RunningToBeDeleted
        - DeletedByUserRequest
      type: string
    job_enum_status:
      enum:
        - ErrorDuringRun
        - Submitted
        - Running
        - CompletedEmptyRecords
        - Completed
        - Failed
        - RunningToBeDeleted
        - DeletedByUserRequest
      type: string
  securitySchemes:
    accountSid_authToken:
      scheme: basic
      type: http
x-maturity:
  - description: This product is Generally Available.
    name: GA
