###
# ============LICENSE_START=======================================================
# appc
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright (C) 2019 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#      http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END=========================================================
###

Request:
  type: object
  properties:
    CommonHeader:
      type: object
      properties:
        TimeStamp:
          type: string
        APIver:
          type: string
          value: '1.01'
        OriginatorID:
          type: string
        RequestID:
          type: string
          pattern: "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        SubRequestID:
          type: string
        Flags:
          type: object
      required:
        - TimeStamp
        - APIver
        - OriginatorID
        - RequestID
    Action:
      type: string
      enum:
        - Audit
        - ActionStatus
        - BlockAudits
        - Configure
        - HealthCheck
        - Install
        - LiveUpgrade
        - Migrate
        - ModifyConfig
        - Query
        - Rebuild
        - Reconfigure
        - Restart
        - Rollback
        - Scale
        - Start
        - Stop
        - Sync
        - Terminate
        - Test
        - Upgrade
    TargetID:
      type: string
    ObjectID:
      type: string
    Payload:
      type: object
  required:
    - CommonHeader
    - Action
    - TargetID
Response:
  type: object
  properties:
    CommonHeader:
      type: object
      properties:
        TimeStamp:
          type: string
        APIver:
          type: string
        OriginatorID:
          type: string
        RequestID:
          type: string
        SubRequestID:
          type: string
        Flags:
          type: object
      required:
        - TimeStamp
        - APIver
        - OriginatorID
        - RequestID
    Status:
      type: object
      properties:
        Code:
          type: integer
        Value:
          type: string
      required:
        - Code
        - Value
    Payload:
      type: object
  required:
    - CommonHeader
    - Status