Commit d38a8fbf authored by YannGarcia's avatar YannGarcia
Browse files

Add BwManagementAPI types

parent 50e5eb56
Loading
Loading
Loading
Loading
+39 −0
Original line number Original line Diff line number Diff line
/**
 *    @author   ETSI / STF569
 *    @version  $URL:$
 *              $ID:$
 *    @desc     This module provides the MEC test cases.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI GS MEC 003, Draft ETSI GS MEC 013 V2.0.3 (2018-10)
 */
module AtsMec_BwManagementAPI_TestCases {
  
  // Libcommon
  import from LibCommon_Time all;
  import from LibCommon_VerdictControl all;
  import from LibCommon_Sync all;
  
  // LibHttp
  import from LibItsHttp_TypesAndValues all;
  import from LibItsHttp_Functions all;
  import from LibItsHttp_Templates all;
  import from LibItsHttp_JsonTemplates all;
  import from LibItsHttp_TestSystem all;
  
  // LibMec/BwManagementAPI
  import from BwManagementAPI_TypesAndValues all;
  import from BwManagementAPI_Templates all;
  
  // LibMec
  import from LibMec_Functions all;
  import from LibMec_Pics all;
  import from LibMec_Pixits all;
  
  group me_app_role {
    
  } // End of group me_app_role 
  
} // End of module AtsMec_BwManagementAPI_TestCases 
+1 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@ module AtsMec_TestControl {
  import from AtsMec_UEinformation_TestCases all;
  import from AtsMec_UEinformation_TestCases all;
  import from AtsMec_RadioNodeLocationAPI_TestCases all;
  import from AtsMec_RadioNodeLocationAPI_TestCases all;
  import from AtsMec_RnisAPI_TestCases all;
  import from AtsMec_RnisAPI_TestCases all;
  import from AtsMec_BwManagementAPI_TestCases all;
  
  
  control {
  control {
    
    
+673 −0

File added.

Preview size limit exceeded, changes collapsed.

+104 −0
Original line number Original line Diff line number Diff line
module BwManagementAPI_Templates {
  
  // JSON
  import from JSON all;
  
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  // LibMec/BwManagementAPI
  import from BwManagementAPI_TypesAndValues all;

  template (value) ProblemDetails m_problem_details(
                                                    in JSON.String p_type,
                                                    in JSON.String p_title,
                                                    in UInt32 p_status,
                                                    in JSON.String p_detail,
                                                    in JSON.String p_instance
  ) := {
    type_    := p_type,
    title    := p_title,
    status   := p_status,
    detail   := p_detail,
    instance := p_instance
  } // End of template m_problem_details

  template (present) ProblemDetails mw_problem_details(
                                                       template (present) JSON.String p_type := ?,
                                                       template (present) JSON.String p_title := ?,
                                                       template (present) UInt32 p_status := ?,
                                                       template (present) JSON.String p_detail := ?,
                                                       template (present) JSON.String p_instance := ?
  ) := {
    type_    := p_type,
    title    := p_title,
    status   := p_status,
    detail   := p_detail,
    instance := p_instance
  } // End of template mw_problem_details

  template (value) BwInfo m_bw_info(
                                    in AppInsId p_appInsId,
                                    in RequestType p_requestType,
                                    in FixedBWPriority p_fixedBWPriority,
                                    in FixedAllocation p_fixedAllocation,
                                    in AllocationDirection p_allocationDirection
                                    ) := {
    timeStamp           := omit,
    appInsId            := p_appInsId,
    requestType         := p_requestType,
    sessionFilter       := omit,
    fixedBWPriority     := p_fixedBWPriority,
    fixedAllocation     := p_fixedAllocation,
    allocationDirection := p_allocationDirection
  } // End of template m_bw_info

  template (present) BwInfo mw_bw_info(
                                       template (present) AppInsId p_appInsId := ?,
                                       template (present) RequestType p_requestType := ?,
                                       template (present) FixedBWPriority p_fixedBWPriority := ?,
                                       template (present) FixedAllocation p_fixedAllocation := ?,
                                       template (present) AllocationDirection p_allocationDirection := ?
                                       ) := {
    timeStamp           := *,
    appInsId            := p_appInsId,
    requestType         := p_requestType,
    sessionFilter       := *,
    fixedBWPriority     := p_fixedBWPriority,
    fixedAllocation     := p_fixedAllocation,
    allocationDirection := p_allocationDirection
  } // End of template mw_bw_info

  template (value) BwInfoDeltas m_bw_info_delta(
                                                in AppInsId p_appInsId,
                                                in RequestType p_requestType,
                                                in template (value) SessionFilter p_sessionFilter,
                                                in FixedBWPriority p_fixedBWPriority,
                                                in FixedAllocation p_fixedAllocation,
                                                in AllocationDirection p_allocationDirection
                                                ) := {
    appInsId            := p_appInsId,
    requestType         := p_requestType,
    sessionFilter       := p_sessionFilter,
    fixedBWPriority     := p_fixedBWPriority,
    fixedAllocation     := p_fixedAllocation,
    allocationDirection := p_allocationDirection
  } // End of template m_bw_info_delta

  template (present) BwInfoDeltas mw_bw_info_delta(
                                                   template (present) AppInsId p_appInsId := ?,
                                                   template (present) RequestType p_requestType := ?,
                                                   template (present) SessionFilter p_sessionFilter := ?,
                                                   template (present) FixedBWPriority p_fixedBWPriority := ?,
                                                   template (present) FixedAllocation p_fixedAllocation := ?,
                                                   template (present) AllocationDirection p_allocationDirection := ?
                                                   ) := {
    appInsId            := p_appInsId,
    requestType         := p_requestType,
    sessionFilter       := p_sessionFilter,
    fixedBWPriority     := p_fixedBWPriority,
    fixedAllocation     := p_fixedAllocation,
    allocationDirection := p_allocationDirection
  } // End of template mw_bw_info_delta

} // End of module BwManagementAPI_Templates 
+148 −0
Original line number Original line Diff line number Diff line
module BwManagementAPI_TypesAndValues {
  
  // JSON
  import from JSON all;
  
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  /**
   * @desc 
   * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type
   * @member title A short, human-readable summary of the problem type
   * @member status The HTTP status code for this occurrence of the problem
   * @member detail A human-readable explanation specific to this occurrence of the problem
   * @member instance A URI reference that identifies the specific occurrence of the problem
   */
  type record ProblemDetails {
    JSON.String type_,
    JSON.String title,
    UInt32 status,
    JSON.String detail,
    JSON.String instance
  } with {
    variant (type_) "name as 'type'";
  }

  /**
   * @desc Information of bandwidth resource
   * @member 
   */
  type record BwInfo {
    TimeStamp timeStamp optional,
    AppInsId appInsId,
    RequestType requestType,
    SessionFilter sessionFilter optional,
    FixedBWPriority fixedBWPriority,
    FixedAllocation fixedAllocation,
    AllocationDirection allocationDirection
  }

  /**
   * @desc Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON
   * @member 
   */
  type record BwInfoDeltas {
    AppInsId appInsId,
    RequestType requestType,
    SessionFilter sessionFilter optional,
    FixedBWPriority fixedBWPriority,
    FixedAllocation fixedAllocation,
    AllocationDirection allocationDirection
  }

  /**
   * @desc
   * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type record TimeStamp {
    Seconds seconds,
    NanoSeconds nanoSeconds
  }

  /**
   * @desc Application instance identifier
   */
  type JSON.String AppInsId;

  /**
   * @desc Numeric value (0 - 255) corresponding to specific type of consumer
   */
  type enumerated  RequestType {
    APPLICATION_SPECIFIC_BW_ALLOCATION,
    SESSION_SPECIFIC_BW_ALLOCATION
  }

  /**
   * @desc Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected
   */
  type record of SessionFilterItems SessionFilter;
  type record SessionFilterItems {
    SourceIp sourceIp,
    SourcePort sourcePort,
    DstAddress dstAddress,
    DstPort dstPort,
    Protocol protocol
  }

  /**
   * @desc Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document
   */
  type enumerated FixedBWPriority {
    reserved
  }

  /**
   * @desc Size of requested fixed BW allocation in [bps]
   */
  type JSON.String FixedAllocation;


  /**
   * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 Seconds;

  /**
   * @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 NanoSeconds;

  /**
   * @desc The direction of the requested BW allocation
   */
  type enumerated AllocationDirection {
    Downlink,
    Uplink,
    Symmetrical
  }

  /**
   * @desc Source address identity of session (including range)
   */
  type JSON.String SourceIp;

  /**
   * @desc Source port identity of session
   */
  type record of JSON.String SourcePort;

  /**
   * @desc Destination address identity of session (including range)
   */
  type JSON.String DstAddress;

  /**
   * @desc Destination port identity of session
   */
  type record of JSON.String DstPort;

  /**
   * @desc Protocol number
   */
  type JSON.String Protocol;

} with {
  encode "JSON"
} // End of module BwManagementAPI_TypesAndValues 
Loading