package awsm-codegen

  1. Overview
  2. Docs

Boto specification for Amazon services

Boto library includes a description of Amazon services in JSON format. This module provides types to represent the contents of the specification, which includes three main parts: - service metadata (constants) - operations (along with their signature) - input and output types for operations

The exact way a specification should be interpreted to provide an implementation depends on the protocol specified in the metadata of the service.

Input/output types for operations are specified as a composition of shapes, where a shape is basically a standard programming type with some optional additional constraints (for instance, integer with bounds).

module Int64 : sig ... end
type checksumFormat = [
  1. | `md5
  2. | `sha256
]
val __checksumFormat_of_sexp__ : Sexplib0.Sexp.t -> checksumFormat
val checksumFormat_of_sexp : Sexplib0.Sexp.t -> checksumFormat
val sexp_of_checksumFormat : checksumFormat -> Sexplib0.Sexp.t
type timestampFormat = [
  1. | `unixTimestamp
  2. | `rfc822
  3. | `iso8601
]
val __timestampFormat_of_sexp__ : Sexplib0.Sexp.t -> timestampFormat
val timestampFormat_of_sexp : Sexplib0.Sexp.t -> timestampFormat
val sexp_of_timestampFormat : timestampFormat -> Sexplib0.Sexp.t
type protocol = [
  1. | `query
  2. | `json
  3. | `rest_json
  4. | `rest_xml
  5. | `ec2
]
val __protocol_of_sexp__ : Sexplib0.Sexp.t -> protocol
val protocol_of_sexp : Sexplib0.Sexp.t -> protocol
val sexp_of_protocol : protocol -> Sexplib0.Sexp.t
type location = [
  1. | `header
  2. | `headers
  3. | `querystring
  4. | `uri
  5. | `statusCode
]
val __location_of_sexp__ : Sexplib0.Sexp.t -> location
val location_of_sexp : Sexplib0.Sexp.t -> location
val sexp_of_location : location -> Sexplib0.Sexp.t
type metadata = {
  1. apiVersion : string;
  2. checksumFormat : checksumFormat option;
  3. endpointPrefix : string;
  4. globalEndpoint : Uri_sexp.t option;
  5. serviceAbbreviation : string option;
  6. serviceFullName : string;
  7. serviceId : string option;
  8. signatureVersion : string;
  9. timestampFormat : timestampFormat option;
  10. protocol : protocol;
  11. jsonVersion : string option;
  12. targetPrefix : Uri_sexp.t option;
  13. signingName : string option;
  14. xmlNamespace : Uri_sexp.t option;
  15. uid : string option;
}
val metadata_of_sexp : Sexplib0.Sexp.t -> metadata
val sexp_of_metadata : metadata -> Sexplib0.Sexp.t
val empty_metadata_for_tests : metadata
type http_method = [
  1. | `GET
  2. | `POST
  3. | `PUT
  4. | `DELETE
  5. | `HEAD
  6. | `PATCH
]
val __http_method_of_sexp__ : Sexplib0.Sexp.t -> http_method
val http_method_of_sexp : Sexplib0.Sexp.t -> http_method
val sexp_of_http_method : http_method -> Sexplib0.Sexp.t
val http_method_of_string : string -> ([> `DELETE | `GET | `HEAD | `PATCH | `POST | `PUT ], string) Core._result
type requestUri_token = [
  1. | `Slash
  2. | `String of string
  3. | `Variable of string * bool
  4. | `Ampersand
  5. | `Qmark
  6. | `Equal
]
val __requestUri_token_of_sexp__ : Sexplib0.Sexp.t -> requestUri_token
val requestUri_token_of_sexp : Sexplib0.Sexp.t -> requestUri_token
val sexp_of_requestUri_token : requestUri_token -> Sexplib0.Sexp.t
type requestUri = requestUri_token list
val requestUri_of_sexp : Sexplib0.Sexp.t -> requestUri
val sexp_of_requestUri : requestUri -> Sexplib0.Sexp.t
type http = {
  1. method_ : http_method;
  2. requestUri : requestUri;
  3. responseCode : int option;
}
val http_of_sexp : Sexplib0.Sexp.t -> http
val sexp_of_http : http -> Sexplib0.Sexp.t
type xmlNamespace = {
  1. uri : Uri_sexp.t;
  2. prefix : string option;
}
val xmlNamespace_of_sexp : Sexplib0.Sexp.t -> xmlNamespace
val sexp_of_xmlNamespace : xmlNamespace -> Sexplib0.Sexp.t
type httpChecksum = {
  1. requestValidationModeMember : string option;
  2. requestAlgorithmMember : string option;
  3. requestChecksumRequired : bool option;
  4. responseAlgorithms : string list option;
}
val httpChecksum_of_sexp : Sexplib0.Sexp.t -> httpChecksum
val sexp_of_httpChecksum : httpChecksum -> Sexplib0.Sexp.t
type operation_input = {
  1. shape : string;
  2. documentation : string option;
  3. deprecated : bool option;
  4. xmlNamespace : xmlNamespace option;
  5. locationName : string option;
}
val operation_input_of_sexp : Sexplib0.Sexp.t -> operation_input
val sexp_of_operation_input : operation_input -> Sexplib0.Sexp.t
type operation_output = {
  1. shape : string;
  2. documentation : string option;
  3. deprecated : bool option;
  4. locationName : string option;
  5. resultWrapper : string option;
  6. wrapper : bool option;
  7. xmlOrder : string list option;
}
val operation_output_of_sexp : Sexplib0.Sexp.t -> operation_output
val sexp_of_operation_output : operation_output -> Sexplib0.Sexp.t
type error = {
  1. code : string option;
  2. httpStatusCode : int;
  3. senderFault : bool option;
}
val error_of_sexp : Sexplib0.Sexp.t -> error
val sexp_of_error : error -> Sexplib0.Sexp.t
type operation_error = {
  1. shape : string;
  2. documentation : string option;
  3. exception_ : bool option;
  4. fault : bool option;
  5. error : error option;
  6. xmlOrder : string list option;
}
val operation_error_of_sexp : Sexplib0.Sexp.t -> operation_error
val sexp_of_operation_error : operation_error -> Sexplib0.Sexp.t
type operation_endpoint = {
  1. hostPrefix : string;
}
val operation_endpoint_of_sexp : Sexplib0.Sexp.t -> operation_endpoint
val sexp_of_operation_endpoint : operation_endpoint -> Sexplib0.Sexp.t
type operation_endpointdiscovery = {
  1. required : bool option;
}
val operation_endpointdiscovery_of_sexp : Sexplib0.Sexp.t -> operation_endpointdiscovery
val sexp_of_operation_endpointdiscovery : operation_endpointdiscovery -> Sexplib0.Sexp.t
type operation = {
  1. name : string;
  2. http : http;
  3. input : operation_input option;
  4. output : operation_output option;
  5. errors : operation_error list option;
  6. documentation : string option;
  7. documentationUrl : Uri_sexp.t option;
  8. alias : string option;
  9. deprecated : bool option;
  10. deprecatedMessage : string option;
  11. authtype : string option;
  12. idempotent : bool option;
  13. httpChecksum : httpChecksum option;
  14. endpoint : operation_endpoint option;
  15. endpointdiscovery : operation_endpointdiscovery option;
}
val operation_of_sexp : Sexplib0.Sexp.t -> operation
val sexp_of_operation : operation -> Sexplib0.Sexp.t
type shape_member = {
  1. shape : string;
  2. deprecated : bool option;
  3. deprecatedMessage : string option;
  4. location : location option;
  5. locationName : string option;
  6. documentation : string option;
  7. xmlNamespace : xmlNamespace option;
  8. streaming : bool option;
  9. xmlAttribute : bool option;
  10. queryName : string option;
  11. box : bool option;
  12. flattened : bool option;
  13. idempotencyToken : bool option;
  14. eventpayload : bool option;
  15. hostLabel : bool option;
  16. jsonvalue : bool option;
}
val shape_member_of_sexp : Sexplib0.Sexp.t -> shape_member
val sexp_of_shape_member : shape_member -> Sexplib0.Sexp.t
type retryable = {
  1. throttling : bool;
}
val retryable_of_sexp : Sexplib0.Sexp.t -> retryable
val sexp_of_retryable : retryable -> Sexplib0.Sexp.t
type structure_shape = {
  1. required : string list option;
  2. members : (string * shape_member) list;
  3. error : error option;
  4. exception_ : bool option;
  5. fault : bool option;
  6. documentation : string option;
  7. document : bool option;
  8. payload : string option;
  9. xmlNamespace : xmlNamespace option;
  10. wrapper : bool option;
  11. deprecated : bool option;
  12. deprecatedMessage : string option;
  13. sensitive : bool option;
  14. xmlOrder : string list option;
  15. locationName : string option;
  16. event : bool option;
  17. eventstream : bool option;
  18. retryable : retryable option;
  19. union : bool option;
  20. box : bool option;
}
val structure_shape_of_sexp : Sexplib0.Sexp.t -> structure_shape
val sexp_of_structure_shape : structure_shape -> Sexplib0.Sexp.t
val empty_structure_shape : structure_shape
type map_shape = {
  1. key : string;
  2. value : string;
  3. min : int option;
  4. max : int option;
  5. flattened : bool option;
  6. locationName : string option;
  7. documentation : string option;
  8. sensitive : bool option;
}
val map_shape_of_sexp : Sexplib0.Sexp.t -> map_shape
val sexp_of_map_shape : map_shape -> Sexplib0.Sexp.t
type string_shape = {
  1. pattern : string option;
  2. min : int option;
  3. max : int option;
  4. sensitive : bool option;
  5. documentation : string option;
  6. deprecated : bool option;
  7. deprecatedMessage : string option;
}
val string_shape_of_sexp : Sexplib0.Sexp.t -> string_shape
val sexp_of_string_shape : string_shape -> Sexplib0.Sexp.t
type list_shape = {
  1. member : shape_member;
  2. min : int option;
  3. max : int option;
  4. documentation : string option;
  5. flattened : bool option;
  6. sensitive : bool option;
  7. deprecated : bool option;
  8. deprecatedMessage : string option;
}
val list_shape_of_sexp : Sexplib0.Sexp.t -> list_shape
val sexp_of_list_shape : list_shape -> Sexplib0.Sexp.t
type boolean_shape = {
  1. box : bool option;
  2. documentation : string option;
}
val boolean_shape_of_sexp : Sexplib0.Sexp.t -> boolean_shape
val sexp_of_boolean_shape : boolean_shape -> Sexplib0.Sexp.t
type integer_shape = {
  1. box : bool option;
  2. min : int option;
  3. max : int option;
  4. documentation : string option;
  5. deprecated : bool option;
  6. deprecatedMessage : string option;
}
val integer_shape_of_sexp : Sexplib0.Sexp.t -> integer_shape
val sexp_of_integer_shape : integer_shape -> Sexplib0.Sexp.t
type long_shape = {
  1. box : bool option;
  2. min : Int64.t option;
  3. max : Int64.t option;
  4. documentation : string option;
}
val long_shape_of_sexp : Sexplib0.Sexp.t -> long_shape
val sexp_of_long_shape : long_shape -> Sexplib0.Sexp.t
type float_shape = {
  1. box : bool option;
  2. min : float option;
  3. max : float option;
  4. documentation : string option;
}
val float_shape_of_sexp : Sexplib0.Sexp.t -> float_shape
val sexp_of_float_shape : float_shape -> Sexplib0.Sexp.t
type double_shape = {
  1. box : bool option;
  2. min : float option;
  3. max : float option;
  4. documentation : string option;
}
val double_shape_of_sexp : Sexplib0.Sexp.t -> double_shape
val sexp_of_double_shape : double_shape -> Sexplib0.Sexp.t
type enum_shape = {
  1. cases : string list;
  2. documentation : string option;
  3. min : int option;
  4. max : int option;
  5. pattern : string option;
  6. deprecated : bool option;
  7. deprecatedMessage : string option;
  8. sensitive : bool option;
}
val enum_shape_of_sexp : Sexplib0.Sexp.t -> enum_shape
val sexp_of_enum_shape : enum_shape -> Sexplib0.Sexp.t
type blob_shape = {
  1. streaming : bool option;
  2. sensitive : bool option;
  3. min : int option;
  4. max : int option;
  5. documentation : string option;
}
val blob_shape_of_sexp : Sexplib0.Sexp.t -> blob_shape
val sexp_of_blob_shape : blob_shape -> Sexplib0.Sexp.t
type timestamp_shape = {
  1. timestampFormat : timestampFormat option;
  2. documentation : string option;
}
val timestamp_shape_of_sexp : Sexplib0.Sexp.t -> timestamp_shape
val sexp_of_timestamp_shape : timestamp_shape -> Sexplib0.Sexp.t
type shape =
  1. | Boolean_shape of boolean_shape
  2. | Long_shape of long_shape
  3. | Double_shape of double_shape
  4. | Float_shape of float_shape
  5. | Blob_shape of blob_shape
  6. | Integer_shape of integer_shape
  7. | String_shape of string_shape
  8. | List_shape of list_shape
  9. | Enum_shape of enum_shape
  10. | Structure_shape of structure_shape
  11. | Timestamp_shape of timestamp_shape
  12. | Map_shape of map_shape
val shape_of_sexp : Sexplib0.Sexp.t -> shape
val sexp_of_shape : shape -> Sexplib0.Sexp.t
val request_id_shape : shape
val response_metadata_shape : shape
type service = {
  1. metadata : metadata;
  2. documentation : string option;
  3. version : string option;
  4. operations : operation list;
  5. shapes : (string * shape) list;
}
val service_of_sexp : Sexplib0.Sexp.t -> service
val sexp_of_service : service -> Sexplib0.Sexp.t
type value = [
  1. | `Boolean of bool
  2. | `Long of Int64.t
  3. | `Double of float
  4. | `Float of float
  5. | `Blob of string
  6. | `Integer of int
  7. | `String of string
  8. | `List of value list
  9. | `Enum of string
  10. | `Structure of (string * value) list
  11. | `Timestamp of string
  12. | `Map of (value * value) list
]
val __value_of_sexp__ : Sexplib0.Sexp.t -> value
val value_of_sexp : Sexplib0.Sexp.t -> value
val sexp_of_value : value -> Sexplib0.Sexp.t
OCaml

Innovation. Community. Security.