IPM Definitions
S3Serv supports IPM definitions for the following operations:
Copy S3 objects.
Delete S3 objects.
Put a BLOB contained in the request IPM as an S3 Object.
Get an S3 Object and return it as a BLOB in the reply IPM.
Every request and reply exchanged with S3Serv includes a header. Request and reply IPM layouts are described using NonStop DDL-style notation. Pre-generated formats are available in NonStop C and COBOL (1974).
Request Header
The request header identifies the specific request to S3Serv, along with a timeout value. The request header contains a code to identify the request.
Request Code
DEF S3-RQ-CODE-ENUM TYPE ENUM BEGIN.
89 S3-RQ-COPY-OBJECT VALUE 1. ! Copy an S3 object.
89 S3-RQ-GET-BLOB VALUE 2. ! Retrieve an S3 object as a BLOB.
89 S3-RQ-PUT-BLOB VALUE 3. ! Store a BLOB as an S3 object.
89 S3-RQ-REMOVE-OBJECT VALUE 4. ! Delete an S3 object.
END.
Request Header
DEF S3-HEADER-RQ.
02 RQ-CODE TYPE S3-RQ-CODE-ENUM.
02 RESERVED TYPE CHARACTER 30. ! reserved, must be binary 0.
END
Reply Header
The S3Serv reply header is the same for every reply. The reply header contains a code to indicate the result of the request.
Reply Code
DEF S3-RP-CODE-ENUM TYPE ENUM BEGIN.
89 S3-SUCCESS VALUE 0. ! Success.
89 S3-INFO VALUE 1. ! The request completed with warnings.
89 S3-ERROR VALUE 2. ! An error occurred.
END
Info Code
DEF S3-INFO-CODE-ENUM TYPE ENUM BEGIN.
89 S3-INFO-TRUNCATION VALUE 100. ! Get BLOB truncation occurred.
END
Reply Header
DEF S3-HEADER-RP.
02 RP-CODE TYPE S3-RP-CODE-ENUM.
02 RP-INFO TYPE S3-INFO-CODE-ENUM.
02 RESERVED TYPE CHARACTER 28.
END
Error Reply
If the reply code value S3-ERROR
, then an Error Reply is returned instead of a request-specific reply. The list of error codes and the layout of the Error Reply are shown below.
Error Codes
DEF S3-ERROR-ENUM TYPE ENUM BEGIN.
89 S3-ERROR-HEADER VALUE 1.
89 S3-ERROR-REQUEST-CODE VALUE 2. ! Unrecognized request code.
89 S3-ERROR-INVALID-SOURCE-NAME VALUE 3. ! The source name is invalid.
89 S3-ERROR-INVALID-TARGET-NAME VALUE 4. ! The target name is invalid.
89 S3-ERROR-OBJECT-NOT-FOUND VALUE 5. ! The referenced S3 object was not found.
89 S3-ERROR-FILE-NOT-FOUND VALUE 6. ! The referenced NonStop file was not found.
89 S3-ERROR-ACCESS-VIOLATION VALUE 7. ! An S3 access violation occurred.
89 S3-ERROR-OBJECT-NOT-EMPTY VALUE 8. ! Attempt to delete an non-empty S3 bucket.
89 S3-ERROR-REQ-NOT-SUPPORTED VALUE 9. ! Attempt to copy a NonStop file to another Nonstop file.
89 S3-ERROR-S3-SVC-ERROR VALUE 10. ! An error occurred with the S3 service.
89 S3-ERROR-S3-SVC-UNAVAILABLE VALUE 11. ! The S3 service is not available.
89 S3-ERROR-FILE-IO-ERROR VALUE 12. ! An error occurred reading or writing to a NonStop file.
89 S3-ERROR-INVALID-COUNT VALUE 13. ! An invalid item count or blob length was specified.
89 S3-ERROR-INTERNAL-ERROR VALUE 500. ! An internal error occurred in S3Serv.
END