2.0info:   5.1.0   Armazenamento de Arquivos  description: Este serviço permite os clientes armazenar, acessar e atualizar dados na Cloud AWS.  x-senior-domain: plataforma  x-senior-domain-path: platform  x-senior-service-path: blob_service  contact:    name: Senior X Platform    url: https://dev.senior.com.br    email: seniorx-dev@senior.com.brhost: api.senior.com.br /platform/blob_servicesecurityDefinitions:  bearerAuth:    type: apiKey    in: header    name: Authorization  – application/json  – application/jsonparameters:  clientId:    name: client_id    type: string    in: header    required: true    description: Identificação da aplicação cadastrada no portal do desenvolvedor (api.xplatform.com.br)paths:  /uploadFile:    post:      description: Cria uma nova área para armazenamento de arquivos, caso ainda não exista e devolve uma url para onde o arquivo deve ser enviado.
Essa área de armazenamento é uma espécie de estrutura de diretório único, formada por um domínio/serviço, e uma senha (areaSecret) que permite um certo nível de segurança. Com isso, é possível evitar que um serviço diferente, inadvertidamente, sobrescreva ou exclua arquivos que não são do seu 'domínio'.
Obs.: Uma vez definido o areaSecret, não é mais possível alterá-lo. Então, para todas as chamadas subsequentes, será necessário informar o mesmo areaSecret, caso contrário, ele irá tentar criar uma nova área, mas ela já existe.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:             #/definitions/blobRequest      responses:        200:          description: Ok          schema:            type: object            required:              – domainName              – serviceName              – targetObjectId              – location            properties:              domainName:                type: string                description: Nome do domínio              serviceName:                type: string                description: Nome do serviço              targetObjectId:                type: string                description: Identificador único do arquivo                              type: string                description: Qual a versão?              token:                type: string                description: As versões podem ter tokens secretos para controlar o acesso              location:                 #/definitions/location              fileName:                type: string                description: O nome efetivo do arquivo        default:          description: Error response          schema:             #/definitions/genericError  /uploadFiles:    post:      description: Cria uma nova área para armazenamento de arquivos, caso ainda não exista e devolve uma url para onde os arquivos devem ser enviados.
Essa área de armazenamento é uma espécie de estrutura de diretório único, formada por um domínio/serviço, e uma senha (areaSecret) que permite um certo nível de segurança. Com isso, é possível evitar que um serviço diferente, inadvertidamente, sobrescreva ou exclua arquivos que não são do seu 'domínio'.
Obs.: Uma vez definido o areaSecret, não é mais possível alterá-lo. Então, para todas as chamadas subsequentes, será necessário informar o mesmo areaSecret, caso contrário, ele irá tentar criar uma nova área, mas ela já existe.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:            type: object            required:              – blobRequest            properties:              blobRequest:                type: array                items:                   #/definitions/blobRequest                description:       responses:        200:          description: Ok          schema:            type: object            required:              – blobDetails            properties:              blobDetails:                 #/definitions/blobDetails        default:          description: Error response          schema:             #/definitions/genericError  /requestDownloads:    post:      description: Demonstra a intensão de realizar o download de um ou mais arquivos.
Quando o arquivo estiver realmente disponível, um sinal downloadAvailable será enviado.
Também poderá ser usado isDownloadAvailable para pesquisar a conclusão.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:            type: object            required:              – blobRequest            properties:              blobRequest:                type: array                items:                   #/definitions/blobRequest                description:       responses:        200:          description: Ok          schema:            type: object            required:              – blobDetails            properties:              blobDetails:                 #/definitions/blobDetails        default:          description: Error response          schema:             #/definitions/genericError  /deleteFiles:    post:      description: Exclui um ou mais arquivos permanentemente.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:            type: object            required:              – deleteFileInput            properties:              deleteFileInput:                type: array                items:                   #/definitions/deleteFileInput                description:       responses:        200:          description: Ok          schema:            type: object            required:              – success            properties:              success:                type: boolean                description:         default:          description: Error response          schema:             #/definitions/genericError  /commitFile:    post:      description: Confirma o arquivo disponível no local de trabalho fornecido como um anexo permanente para um objeto de destino.
Quando a operação realmente for concluída, um sinal fileCommitted será enviado.
Apenas o serviço que possui o próprio blob pode confirmar um arquivo.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:             #/definitions/commitFileInput      responses:        200:          description: Ok          schema:            type: object            required:              – domainName              – serviceName              – targetObject              – location            properties:              domainName:                type: string                description: Nome do domínio              serviceName:                type: string                description: Nome do serviço              targetObject:                type: string                description: Identificador único do arquivo              location:                 #/definitions/location              name:                type: string                description: Nome do arquivo              size:                type: integer                description: Tamanho do arquivo              type:                 #/definitions/fileType                              type: string                description: Título              summary:                type: string                description: @Deprecated Este campo será removido dia 28/02/2020              keyWords:                type: string                description: @Deprecated Este campo será removido dia 28/02/2020              contentType:                type: string                description: Tipo de conteúdo (Mime type)              thumbnailGenerationError:                type: string                description: Thumbnail generation error              metadataExtractionError:                type: string                description: Metadata extraction error        default:          description: Error response          schema:             #/definitions/genericError  /isDownloadAvailable:    post:      description: Permite que um cliente verifique se um download solicitado já está disponível.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:             #/definitions/blobDetails      responses:        200:          description: Ok          schema:            type: object            required:              – available            properties:              available:                type: boolean                description:         default:          description: Error response          schema:             #/definitions/genericError    get:      description: Permite que um cliente verifique se um download solicitado já está disponível.      x-senior-event: false      deprecated: false      tags:        – Endpoints      security:        – bearerAuth: []      parameters:        –  #/parameters/clientId        – name: input          in: body          required: true          schema:             #/definitions/blobDetails      responses:        200:          description: Ok          schema:            type: object            required:              – available            properties:              available:                type: boolean                description:         default:          description: Error response          schema:             #/definitions/genericErrordefinitions:  fileType:    type: string    enum:      – Unknown      – PDF      – MsWord      – MsExcel      – MsPowerPoint      – MsVisio      – MsOutlook      – MsPublisher      – OoxmlWord      – OoxmlExcel      – OoxmlPowerPoint      – OoxmlVisio      – PlainText      – Image      – Video      – Audio  requirement:    type: string    enum:      – Open      – External      – Temporary  protocol:    type: string    enum:      – File      – HTTP      – S3      – DAV  deleteFileInput:    type: object    required:      – domainName      – serviceName      – targetObject      – areaSecret      – fileName      – failIfNotExists    properties:        domainName:          type: string          description: Nome do domínio        serviceName:          type: string          description: Nome do serviço        targetObject:          type: string          description: Identificador único do arquivo.        areaSecret:          type: string          description: Nome da área ou pasta onde se encontra o arquivo, criada durante o upload.        fileName:          type: string          description: O nome efetivo do arquivo.        styles:          type: array          items:            type: string          description: Utilizado para apagar miniaturas de imagens. Ex:  '32×32', '50×50'. Indica qual a proporção da imagem que deve ser apagada.        failIfNotExists:          type: boolean          description: Especifica se esta ação deve falhar se o arquivo fornecido não existir  commitFileInput:    type: object    required:      – domainName      – serviceName      – targetObject      – version      – areaSecret      – release      – fileName    properties:        domainName:          type: string          description: Nome do domínio        serviceName:          type: string          description: Nome do serviço        targetObject:          type: string          description: Identificador único do arquivo                  type: string          description: Versão do arquivo        areaSecret:          type: string          description: Nome da área ou pasta onde se encontra o arquivo, criada durante o upload        release:          type: boolean          description: Se a cópia de trabalho deve ser liberada após o commit        fileName:          type: string          description: O nome efetivo do arquivo        defaultStyle:          type: string          description: Tamanho default da imagem (substitui o arquivo original): '32×32#', '50×50>' onde o '>' indica que a proporção de tela será mantida        styles:          type: array          items:            type: string          description: Tamanhos de imagens que deverão ser criadas: '32×32#', '50×50>' onde o '>' indica que a proporção de tela será mantida        extractMetadata:          type: boolean          description: Retornar o metadata do arquivo de forma síncrona        cacheTimeToExpireInMonths:          type: integer          description: Tempo em meses para expirar o cache        ignoreThumbnailGenerationErrors:          type: boolean          description: Ignora erros na criação de thumbnails        ignoreMetadataExtractionErrors:          type: boolean          description: Ignora erros na extração de metadados        ttl:          type: integer          description: Tempo de vida do arquivo em segundos. O valor mínimo, caso informado, é de 1 hora.  blobRequest:    type: object    required:      – domainName      – serviceName      – targetObjectId    properties:        domainName:          type: string          description: Nome do domínio        serviceName:          type: string          description: Nome do Serviço        areaSecret:          type: string          description: Nome da área ou pasta onde se encontra o arquivo, criada durante o upload.        targetObjectId:          type: string          description: Identificador único do arquivo.        fileName:          type: string          description: O nome efetivo do arquivo.                  type: string          description: Versão do arquivo        token:          type: string          description: As versões podem ter tokens secretos para controlar o acesso        requirements:          type: array          items:             #/definitions/requirement          description: Requisitos de localização        supportedProtocols:          type: array          items:             #/definitions/protocol          description: Os protocolos de transferência de arquivos que o cliente pode suportar.        style:          type: string          description: O tamanho/estilo/formato ex: '32×32#', '50×50>' onde '>' indicado para manter a proporção        ttl:          type: integer          description: Tempo de vida do arquivo em segundos, para o serviço requestUpload o valor máximo é 31536000 segundos  blobDetails:    type: object    required:      – domainName      – serviceName      – targetObjectId      – location    properties:        domainName:          type: string          description: Nome do domínio        serviceName:          type: string          description: Nome do serviço        targetObjectId:          type: string          description: Identificador único do arquivo                  type: string          description: Qual a versão?        token:          type: string          description: As versões podem ter tokens secretos para controlar o acesso        location:           #/definitions/location        fileName:          type: string          description: O nome efetivo do arquivo  location:    type: object    required:      – protocol      – uri    properties:        protocol:           #/definitions/protocol        uri:          type: string          description:         credentials:           #/definitions/credentials  credentials:    type: object    properties:  genericError:    properties:      message:        type: string        description: Messaging describing the error.      reason:        type: string        description: A symbolic code identifying the category of the reason of the error.        enum:          – BAD_REQUEST          – UNAUTHORIZED          – PAYMENT_REQUIRED          – FORBIDDEN          – OBJECT_NOT_FOUND          – REQUEST_TIMEOUT          – GONE          – UNPROCESSABLE          – INTERNAL_ERROR          – NOT_IMPLEMENTED          – SERVICE_UNAVAILABLE          – INSUFFICIENT_STORAGE