openapi: 3.2.0 info: title: Composer API version: 1.14.0 servers: - description: Production url: https://prod.apigateway.co/grpc tags: - name: Composer paths: /v1/composer/update: post: operationId: Composer_UpdatePosts requestBody: content: application/json: schema: $ref: '#/components/schemas/v1UpdatePostsRequest' description: Request to update one or more scheduled social media posts. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/v1UpdatePostsResponse' description: A successful response. default: content: application/json: schema: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. summary: Update Posts tags: - Composer components: schemas: v1Exception: description: An error encountered for a specific social service during a post operation. properties: message: description: Output only. The error message describing what went wrong. readOnly: true type: string socialServiceId: description: Output only. The social service ID where the error occurred. readOnly: true type: string title: Exception type: object rpcStatus: properties: code: format: int32 type: integer details: items: $ref: '#/components/schemas/protobufAny' type: array message: type: string type: object v1GMBPostCustomization: properties: ctaType: type: string eventEnd: format: date-time type: string eventStart: format: date-time type: string linkUrl: type: string title: type: string type: object v1PostType: default: POST_TYPE_INVALID enum: - POST_TYPE_INVALID - POST_TYPE_IMAGE - POST_TYPE_VIDEO - POST_TYPE_GIF - POST_TYPE_REEL - POST_TYPE_CAROUSEL - POST_TYPE_STORIES - POST_TYPE_TEXT - POST_TYPE_IMAGE_STORY - POST_TYPE_VIDEO_STORY type: string composerv1MediaEntry: description: 'Media Entry field to have media This is currently starting with Instagram Carousel posts but we would need to update other post types as well.' properties: containerId: type: string mediaEntryId: type: string mediaType: type: string mediaUrl: type: string metaData: items: $ref: '#/components/schemas/v1MetaData' type: array type: object v1UpdatePostsRequest: description: Request to update one or more scheduled social media posts. properties: posts: description: Required. The list of posts to update. Each post must include its internal_post_id. items: $ref: '#/components/schemas/v1Post' type: array required: - posts title: UpdatePostsRequest type: object v1Result: description: A successful result containing the social post ID and post details. properties: post: $ref: '#/components/schemas/v1Post' socialPostId: description: Output only. The social post ID assigned by the social media platform. readOnly: true type: string title: Result type: object v1MetaData: description: 'Metadata message type for saving properties in individual µservice This is currently starting with Instagram Carousel posts but we would need to update other post types as well.' properties: propertyName: type: string propertyValue: type: string type: object v1Post: description: A social media post to be scheduled, updated, or returned in results. properties: brandId: description: Optional. If this is an ML post, brand ID is also required. type: string businessId: description: Required. The business ID of the account. type: string gifUrl: description: Optional. The URL of a gif to post. type: string gmbPostCustomization: $ref: '#/components/schemas/v1GMBPostCustomization' imageUrls: description: Optional. The URLs of images to include on the post. items: type: string type: array internalPostId: description: Required. The internal post ID, used to identify the post for updates. type: string isMultilocation: description: Optional. If this is a multi-location composer post or not. type: boolean link: $ref: '#/components/schemas/v1Link' linkShortCodes: description: Optional. The shortcodes of links in the post. items: type: string type: array linkUrl: description: Optional. The URL of a link to post. type: string mediaEntries: description: Optional. Array of media content when uploading multiple media. items: $ref: '#/components/schemas/composerv1MediaEntry' type: array metaData: description: Optional. Metadata about the media, could be anything. items: $ref: '#/components/schemas/v1MetaData' type: array postText: description: Optional. The post text content. type: string postType: $ref: '#/components/schemas/v1PostType' scheduled: description: Optional. The time to schedule the post for. format: date-time type: string socialServiceId: description: Required. The ID of the social service connection to publish to. type: string tiktokCustomization: $ref: '#/components/schemas/v1TikTokCustomization' title: description: Optional. The title of the post. Used by YouTube and LinkedIn. type: string videoUrl: description: Optional. The URL of a video to post. type: string youtubeCustomization: $ref: '#/components/schemas/v1YoutubeCustomization' required: - socialServiceId - businessId - internalPostId title: Post type: object YoutubeCustomizationPrivacyStatus: default: STATUS_INVALID enum: - STATUS_INVALID - STATUS_PUBLIC - STATUS_PRIVATE - STATUS_UNLISTED type: string v1UpdatePostsResponse: description: Response containing the results of updating social media posts. properties: exceptions: description: Output only. Exceptions encountered during post updates. items: $ref: '#/components/schemas/v1Exception' readOnly: true type: array results: description: Output only. The successfully updated posts. items: $ref: '#/components/schemas/v1Result' readOnly: true type: array title: UpdatePostsResponse type: object v1Link: properties: description: title: The description of the link type: string name: title: The name of the link preview type: string picture: description: The preview image associated with the link. type: string title: title: The title for the link type: string type: object protobufAny: additionalProperties: {} properties: '@type': type: string type: object v1TikTokCustomization: properties: allowComment: type: boolean allowDuet: type: boolean allowStitch: type: boolean isBrandOrganic: type: boolean isBrandedContent: type: boolean type: object v1YoutubeCustomization: properties: privacyStatus: $ref: '#/components/schemas/YoutubeCustomizationPrivacyStatus' type: object securitySchemes: OAuth2: flows: authorizationCode: authorizationUrl: https://sso-api-prod.apigateway.co/oauth2/auth scopes: {} tokenUrl: https://sso-api-prod.apigateway.co/oauth2/token type: oauth2