R/clouddirectory_operations.R

Defines functions clouddirectory_upgrade_published_schema clouddirectory_upgrade_applied_schema clouddirectory_update_typed_link_facet clouddirectory_update_schema clouddirectory_update_object_attributes clouddirectory_update_link_attributes clouddirectory_update_facet clouddirectory_untag_resource clouddirectory_tag_resource clouddirectory_remove_facet_from_object clouddirectory_put_schema_from_json clouddirectory_publish_schema clouddirectory_lookup_policy clouddirectory_list_typed_link_facet_names clouddirectory_list_typed_link_facet_attributes clouddirectory_list_tags_for_resource clouddirectory_list_published_schema_arns clouddirectory_list_policy_attachments clouddirectory_list_outgoing_typed_links clouddirectory_list_object_policies clouddirectory_list_object_parents clouddirectory_list_object_parent_paths clouddirectory_list_object_children clouddirectory_list_object_attributes clouddirectory_list_managed_schema_arns clouddirectory_list_index clouddirectory_list_incoming_typed_links clouddirectory_list_facet_names clouddirectory_list_facet_attributes clouddirectory_list_directories clouddirectory_list_development_schema_arns clouddirectory_list_attached_indices clouddirectory_list_applied_schema_arns clouddirectory_get_typed_link_facet_information clouddirectory_get_schema_as_json clouddirectory_get_object_information clouddirectory_get_object_attributes clouddirectory_get_link_attributes clouddirectory_get_facet clouddirectory_get_directory clouddirectory_get_applied_schema_version clouddirectory_enable_directory clouddirectory_disable_directory clouddirectory_detach_typed_link clouddirectory_detach_policy clouddirectory_detach_object clouddirectory_detach_from_index clouddirectory_delete_typed_link_facet clouddirectory_delete_schema clouddirectory_delete_object clouddirectory_delete_facet clouddirectory_delete_directory clouddirectory_create_typed_link_facet clouddirectory_create_schema clouddirectory_create_object clouddirectory_create_index clouddirectory_create_facet clouddirectory_create_directory clouddirectory_batch_write clouddirectory_batch_read clouddirectory_attach_typed_link clouddirectory_attach_to_index clouddirectory_attach_policy clouddirectory_attach_object clouddirectory_apply_schema clouddirectory_add_facet_to_object

Documented in clouddirectory_add_facet_to_object clouddirectory_apply_schema clouddirectory_attach_object clouddirectory_attach_policy clouddirectory_attach_to_index clouddirectory_attach_typed_link clouddirectory_batch_read clouddirectory_batch_write clouddirectory_create_directory clouddirectory_create_facet clouddirectory_create_index clouddirectory_create_object clouddirectory_create_schema clouddirectory_create_typed_link_facet clouddirectory_delete_directory clouddirectory_delete_facet clouddirectory_delete_object clouddirectory_delete_schema clouddirectory_delete_typed_link_facet clouddirectory_detach_from_index clouddirectory_detach_object clouddirectory_detach_policy clouddirectory_detach_typed_link clouddirectory_disable_directory clouddirectory_enable_directory clouddirectory_get_applied_schema_version clouddirectory_get_directory clouddirectory_get_facet clouddirectory_get_link_attributes clouddirectory_get_object_attributes clouddirectory_get_object_information clouddirectory_get_schema_as_json clouddirectory_get_typed_link_facet_information clouddirectory_list_applied_schema_arns clouddirectory_list_attached_indices clouddirectory_list_development_schema_arns clouddirectory_list_directories clouddirectory_list_facet_attributes clouddirectory_list_facet_names clouddirectory_list_incoming_typed_links clouddirectory_list_index clouddirectory_list_managed_schema_arns clouddirectory_list_object_attributes clouddirectory_list_object_children clouddirectory_list_object_parent_paths clouddirectory_list_object_parents clouddirectory_list_object_policies clouddirectory_list_outgoing_typed_links clouddirectory_list_policy_attachments clouddirectory_list_published_schema_arns clouddirectory_list_tags_for_resource clouddirectory_list_typed_link_facet_attributes clouddirectory_list_typed_link_facet_names clouddirectory_lookup_policy clouddirectory_publish_schema clouddirectory_put_schema_from_json clouddirectory_remove_facet_from_object clouddirectory_tag_resource clouddirectory_untag_resource clouddirectory_update_facet clouddirectory_update_link_attributes clouddirectory_update_object_attributes clouddirectory_update_schema clouddirectory_update_typed_link_facet clouddirectory_upgrade_applied_schema clouddirectory_upgrade_published_schema

# This file is generated by make.paws. Please do not edit here.
#' @importFrom paws.common get_config new_operation new_request send_request
#' @include clouddirectory_service.R
NULL

#' Adds a new Facet to an object
#'
#' Adds a new Facet to an object. An object can have more than one facet
#' applied on it.
#'
#' @usage
#' clouddirectory_add_facet_to_object(DirectoryArn, SchemaFacet,
#'   ObjectAttributeList, ObjectReference)
#'
#' @param DirectoryArn [required] The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param SchemaFacet [required] Identifiers for the facet that you are adding to the object. See
#' SchemaFacet for details.
#' @param ObjectAttributeList Attributes on the facet that you are adding to the object.
#' @param ObjectReference [required] A reference to the object you are adding the specified facet to.
#'
#' @section Request syntax:
#' ```
#' svc$add_facet_to_object(
#'   DirectoryArn = "string",
#'   SchemaFacet = list(
#'     SchemaArn = "string",
#'     FacetName = "string"
#'   ),
#'   ObjectAttributeList = list(
#'     list(
#'       Key = list(
#'         SchemaArn = "string",
#'         FacetName = "string",
#'         Name = "string"
#'       ),
#'       Value = list(
#'         StringValue = "string",
#'         BinaryValue = raw,
#'         BooleanValue = TRUE|FALSE,
#'         NumberValue = "string",
#'         DatetimeValue = as.POSIXct(
#'           "2015-01-01"
#'         )
#'       )
#'     )
#'   ),
#'   ObjectReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_add_facet_to_object
clouddirectory_add_facet_to_object <- function(DirectoryArn, SchemaFacet, ObjectAttributeList = NULL, ObjectReference) {
  op <- new_operation(
    name = "AddFacetToObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/facets",
    paginator = list()
  )
  input <- .clouddirectory$add_facet_to_object_input(DirectoryArn = DirectoryArn, SchemaFacet = SchemaFacet, ObjectAttributeList = ObjectAttributeList, ObjectReference = ObjectReference)
  output <- .clouddirectory$add_facet_to_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$add_facet_to_object <- clouddirectory_add_facet_to_object

#' Copies the input published schema, at the specified version, into the
#' Directory with the same name and version as that of the published schema
#'
#' Copies the input published schema, at the specified version, into the
#' Directory with the same name and version as that of the published
#' schema.
#'
#' @usage
#' clouddirectory_apply_schema(PublishedSchemaArn, DirectoryArn)
#'
#' @param PublishedSchemaArn &#91;required&#93; Published schema Amazon Resource Name (ARN) that needs to be copied. For
#' more information, see arns.
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' into which the schema is copied. For more information, see arns.
#'
#' @section Request syntax:
#' ```
#' svc$apply_schema(
#'   PublishedSchemaArn = "string",
#'   DirectoryArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_apply_schema
clouddirectory_apply_schema <- function(PublishedSchemaArn, DirectoryArn) {
  op <- new_operation(
    name = "ApplySchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/apply",
    paginator = list()
  )
  input <- .clouddirectory$apply_schema_input(PublishedSchemaArn = PublishedSchemaArn, DirectoryArn = DirectoryArn)
  output <- .clouddirectory$apply_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$apply_schema <- clouddirectory_apply_schema

#' Attaches an existing object to another object
#'
#' Attaches an existing object to another object. An object can be accessed
#' in two ways:
#' 
#' 1.  Using the path
#' 
#' 2.  Using `ObjectIdentifier`
#'
#' @usage
#' clouddirectory_attach_object(DirectoryArn, ParentReference,
#'   ChildReference, LinkName)
#'
#' @param DirectoryArn &#91;required&#93; Amazon Resource Name (ARN) that is associated with the Directory where
#' both objects reside. For more information, see arns.
#' @param ParentReference &#91;required&#93; The parent object reference.
#' @param ChildReference &#91;required&#93; The child object reference to be attached to the object.
#' @param LinkName &#91;required&#93; The link name with which the child object is attached to the parent.
#'
#' @section Request syntax:
#' ```
#' svc$attach_object(
#'   DirectoryArn = "string",
#'   ParentReference = list(
#'     Selector = "string"
#'   ),
#'   ChildReference = list(
#'     Selector = "string"
#'   ),
#'   LinkName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_attach_object
clouddirectory_attach_object <- function(DirectoryArn, ParentReference, ChildReference, LinkName) {
  op <- new_operation(
    name = "AttachObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/attach",
    paginator = list()
  )
  input <- .clouddirectory$attach_object_input(DirectoryArn = DirectoryArn, ParentReference = ParentReference, ChildReference = ChildReference, LinkName = LinkName)
  output <- .clouddirectory$attach_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$attach_object <- clouddirectory_attach_object

#' Attaches a policy object to a regular object
#'
#' Attaches a policy object to a regular object. An object can have a
#' limited number of attached policies.
#'
#' @usage
#' clouddirectory_attach_policy(DirectoryArn, PolicyReference,
#'   ObjectReference)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where both objects reside. For more information, see arns.
#' @param PolicyReference &#91;required&#93; The reference that is associated with the policy object.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object to which the policy will be
#' attached.
#'
#' @section Request syntax:
#' ```
#' svc$attach_policy(
#'   DirectoryArn = "string",
#'   PolicyReference = list(
#'     Selector = "string"
#'   ),
#'   ObjectReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_attach_policy
clouddirectory_attach_policy <- function(DirectoryArn, PolicyReference, ObjectReference) {
  op <- new_operation(
    name = "AttachPolicy",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/policy/attach",
    paginator = list()
  )
  input <- .clouddirectory$attach_policy_input(DirectoryArn = DirectoryArn, PolicyReference = PolicyReference, ObjectReference = ObjectReference)
  output <- .clouddirectory$attach_policy_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$attach_policy <- clouddirectory_attach_policy

#' Attaches the specified object to the specified index
#'
#' Attaches the specified object to the specified index.
#'
#' @usage
#' clouddirectory_attach_to_index(DirectoryArn, IndexReference,
#'   TargetReference)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory where the object and
#' index exist.
#' @param IndexReference &#91;required&#93; A reference to the index that you are attaching the object to.
#' @param TargetReference &#91;required&#93; A reference to the object that you are attaching to the index.
#'
#' @section Request syntax:
#' ```
#' svc$attach_to_index(
#'   DirectoryArn = "string",
#'   IndexReference = list(
#'     Selector = "string"
#'   ),
#'   TargetReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_attach_to_index
clouddirectory_attach_to_index <- function(DirectoryArn, IndexReference, TargetReference) {
  op <- new_operation(
    name = "AttachToIndex",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/index/attach",
    paginator = list()
  )
  input <- .clouddirectory$attach_to_index_input(DirectoryArn = DirectoryArn, IndexReference = IndexReference, TargetReference = TargetReference)
  output <- .clouddirectory$attach_to_index_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$attach_to_index <- clouddirectory_attach_to_index

#' Attaches a typed link to a specified source and target object
#'
#' Attaches a typed link to a specified source and target object. For more
#' information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_attach_typed_link(DirectoryArn, SourceObjectReference,
#'   TargetObjectReference, TypedLinkFacet, Attributes)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory where you want to attach
#' the typed link.
#' @param SourceObjectReference &#91;required&#93; Identifies the source object that the typed link will attach to.
#' @param TargetObjectReference &#91;required&#93; Identifies the target object that the typed link will attach to.
#' @param TypedLinkFacet &#91;required&#93; Identifies the typed link facet that is associated with the typed link.
#' @param Attributes &#91;required&#93; A set of attributes that are associated with the typed link.
#'
#' @section Request syntax:
#' ```
#' svc$attach_typed_link(
#'   DirectoryArn = "string",
#'   SourceObjectReference = list(
#'     Selector = "string"
#'   ),
#'   TargetObjectReference = list(
#'     Selector = "string"
#'   ),
#'   TypedLinkFacet = list(
#'     SchemaArn = "string",
#'     TypedLinkName = "string"
#'   ),
#'   Attributes = list(
#'     list(
#'       AttributeName = "string",
#'       Value = list(
#'         StringValue = "string",
#'         BinaryValue = raw,
#'         BooleanValue = TRUE|FALSE,
#'         NumberValue = "string",
#'         DatetimeValue = as.POSIXct(
#'           "2015-01-01"
#'         )
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_attach_typed_link
clouddirectory_attach_typed_link <- function(DirectoryArn, SourceObjectReference, TargetObjectReference, TypedLinkFacet, Attributes) {
  op <- new_operation(
    name = "AttachTypedLink",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/attach",
    paginator = list()
  )
  input <- .clouddirectory$attach_typed_link_input(DirectoryArn = DirectoryArn, SourceObjectReference = SourceObjectReference, TargetObjectReference = TargetObjectReference, TypedLinkFacet = TypedLinkFacet, Attributes = Attributes)
  output <- .clouddirectory$attach_typed_link_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$attach_typed_link <- clouddirectory_attach_typed_link

#' Performs all the read operations in a batch
#'
#' Performs all the read operations in a batch.
#'
#' @usage
#' clouddirectory_batch_read(DirectoryArn, Operations, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory.
#' For more information, see arns.
#' @param Operations &#91;required&#93; A list of operations that are part of the batch.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#'
#' @section Request syntax:
#' ```
#' svc$batch_read(
#'   DirectoryArn = "string",
#'   Operations = list(
#'     list(
#'       ListObjectAttributes = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123,
#'         FacetFilter = list(
#'           SchemaArn = "string",
#'           FacetName = "string"
#'         )
#'       ),
#'       ListObjectChildren = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListAttachedIndices = list(
#'         TargetReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListObjectParentPaths = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       GetObjectInformation = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       GetObjectAttributes = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         SchemaFacet = list(
#'           SchemaArn = "string",
#'           FacetName = "string"
#'         ),
#'         AttributeNames = list(
#'           "string"
#'         )
#'       ),
#'       ListObjectParents = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListObjectPolicies = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListPolicyAttachments = list(
#'         PolicyReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       LookupPolicy = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListIndex = list(
#'         RangesOnIndexedValues = list(
#'           list(
#'             AttributeKey = list(
#'               SchemaArn = "string",
#'               FacetName = "string",
#'               Name = "string"
#'             ),
#'             Range = list(
#'               StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               StartValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               ),
#'               EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               EndValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         ),
#'         IndexReference = list(
#'           Selector = "string"
#'         ),
#'         MaxResults = 123,
#'         NextToken = "string"
#'       ),
#'       ListOutgoingTypedLinks = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         FilterAttributeRanges = list(
#'           list(
#'             AttributeName = "string",
#'             Range = list(
#'               StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               StartValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               ),
#'               EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               EndValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         ),
#'         FilterTypedLink = list(
#'           SchemaArn = "string",
#'           TypedLinkName = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       ListIncomingTypedLinks = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         FilterAttributeRanges = list(
#'           list(
#'             AttributeName = "string",
#'             Range = list(
#'               StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               StartValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               ),
#'               EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'               EndValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         ),
#'         FilterTypedLink = list(
#'           SchemaArn = "string",
#'           TypedLinkName = "string"
#'         ),
#'         NextToken = "string",
#'         MaxResults = 123
#'       ),
#'       GetLinkAttributes = list(
#'         TypedLinkSpecifier = list(
#'           TypedLinkFacet = list(
#'             SchemaArn = "string",
#'             TypedLinkName = "string"
#'           ),
#'           SourceObjectReference = list(
#'             Selector = "string"
#'           ),
#'           TargetObjectReference = list(
#'             Selector = "string"
#'           ),
#'           IdentityAttributeValues = list(
#'             list(
#'               AttributeName = "string",
#'               Value = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         ),
#'         AttributeNames = list(
#'           "string"
#'         )
#'       )
#'     )
#'   ),
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_batch_read
clouddirectory_batch_read <- function(DirectoryArn, Operations, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "BatchRead",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/batchread",
    paginator = list()
  )
  input <- .clouddirectory$batch_read_input(DirectoryArn = DirectoryArn, Operations = Operations, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$batch_read_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$batch_read <- clouddirectory_batch_read

#' Performs all the write operations in a batch
#'
#' Performs all the write operations in a batch. Either all the operations
#' succeed or none.
#'
#' @usage
#' clouddirectory_batch_write(DirectoryArn, Operations)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory.
#' For more information, see arns.
#' @param Operations &#91;required&#93; A list of operations that are part of the batch.
#'
#' @section Request syntax:
#' ```
#' svc$batch_write(
#'   DirectoryArn = "string",
#'   Operations = list(
#'     list(
#'       CreateObject = list(
#'         SchemaFacet = list(
#'           list(
#'             SchemaArn = "string",
#'             FacetName = "string"
#'           )
#'         ),
#'         ObjectAttributeList = list(
#'           list(
#'             Key = list(
#'               SchemaArn = "string",
#'               FacetName = "string",
#'               Name = "string"
#'             ),
#'             Value = list(
#'               StringValue = "string",
#'               BinaryValue = raw,
#'               BooleanValue = TRUE|FALSE,
#'               NumberValue = "string",
#'               DatetimeValue = as.POSIXct(
#'                 "2015-01-01"
#'               )
#'             )
#'           )
#'         ),
#'         ParentReference = list(
#'           Selector = "string"
#'         ),
#'         LinkName = "string",
#'         BatchReferenceName = "string"
#'       ),
#'       AttachObject = list(
#'         ParentReference = list(
#'           Selector = "string"
#'         ),
#'         ChildReference = list(
#'           Selector = "string"
#'         ),
#'         LinkName = "string"
#'       ),
#'       DetachObject = list(
#'         ParentReference = list(
#'           Selector = "string"
#'         ),
#'         LinkName = "string",
#'         BatchReferenceName = "string"
#'       ),
#'       UpdateObjectAttributes = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         ),
#'         AttributeUpdates = list(
#'           list(
#'             ObjectAttributeKey = list(
#'               SchemaArn = "string",
#'               FacetName = "string",
#'               Name = "string"
#'             ),
#'             ObjectAttributeAction = list(
#'               ObjectAttributeActionType = "CREATE_OR_UPDATE"|"DELETE",
#'               ObjectAttributeUpdateValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         )
#'       ),
#'       DeleteObject = list(
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       AddFacetToObject = list(
#'         SchemaFacet = list(
#'           SchemaArn = "string",
#'           FacetName = "string"
#'         ),
#'         ObjectAttributeList = list(
#'           list(
#'             Key = list(
#'               SchemaArn = "string",
#'               FacetName = "string",
#'               Name = "string"
#'             ),
#'             Value = list(
#'               StringValue = "string",
#'               BinaryValue = raw,
#'               BooleanValue = TRUE|FALSE,
#'               NumberValue = "string",
#'               DatetimeValue = as.POSIXct(
#'                 "2015-01-01"
#'               )
#'             )
#'           )
#'         ),
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       RemoveFacetFromObject = list(
#'         SchemaFacet = list(
#'           SchemaArn = "string",
#'           FacetName = "string"
#'         ),
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       AttachPolicy = list(
#'         PolicyReference = list(
#'           Selector = "string"
#'         ),
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       DetachPolicy = list(
#'         PolicyReference = list(
#'           Selector = "string"
#'         ),
#'         ObjectReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       CreateIndex = list(
#'         OrderedIndexedAttributeList = list(
#'           list(
#'             SchemaArn = "string",
#'             FacetName = "string",
#'             Name = "string"
#'           )
#'         ),
#'         IsUnique = TRUE|FALSE,
#'         ParentReference = list(
#'           Selector = "string"
#'         ),
#'         LinkName = "string",
#'         BatchReferenceName = "string"
#'       ),
#'       AttachToIndex = list(
#'         IndexReference = list(
#'           Selector = "string"
#'         ),
#'         TargetReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       DetachFromIndex = list(
#'         IndexReference = list(
#'           Selector = "string"
#'         ),
#'         TargetReference = list(
#'           Selector = "string"
#'         )
#'       ),
#'       AttachTypedLink = list(
#'         SourceObjectReference = list(
#'           Selector = "string"
#'         ),
#'         TargetObjectReference = list(
#'           Selector = "string"
#'         ),
#'         TypedLinkFacet = list(
#'           SchemaArn = "string",
#'           TypedLinkName = "string"
#'         ),
#'         Attributes = list(
#'           list(
#'             AttributeName = "string",
#'             Value = list(
#'               StringValue = "string",
#'               BinaryValue = raw,
#'               BooleanValue = TRUE|FALSE,
#'               NumberValue = "string",
#'               DatetimeValue = as.POSIXct(
#'                 "2015-01-01"
#'               )
#'             )
#'           )
#'         )
#'       ),
#'       DetachTypedLink = list(
#'         TypedLinkSpecifier = list(
#'           TypedLinkFacet = list(
#'             SchemaArn = "string",
#'             TypedLinkName = "string"
#'           ),
#'           SourceObjectReference = list(
#'             Selector = "string"
#'           ),
#'           TargetObjectReference = list(
#'             Selector = "string"
#'           ),
#'           IdentityAttributeValues = list(
#'             list(
#'               AttributeName = "string",
#'               Value = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         )
#'       ),
#'       UpdateLinkAttributes = list(
#'         TypedLinkSpecifier = list(
#'           TypedLinkFacet = list(
#'             SchemaArn = "string",
#'             TypedLinkName = "string"
#'           ),
#'           SourceObjectReference = list(
#'             Selector = "string"
#'           ),
#'           TargetObjectReference = list(
#'             Selector = "string"
#'           ),
#'           IdentityAttributeValues = list(
#'             list(
#'               AttributeName = "string",
#'               Value = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         ),
#'         AttributeUpdates = list(
#'           list(
#'             AttributeKey = list(
#'               SchemaArn = "string",
#'               FacetName = "string",
#'               Name = "string"
#'             ),
#'             AttributeAction = list(
#'               AttributeActionType = "CREATE_OR_UPDATE"|"DELETE",
#'               AttributeUpdateValue = list(
#'                 StringValue = "string",
#'                 BinaryValue = raw,
#'                 BooleanValue = TRUE|FALSE,
#'                 NumberValue = "string",
#'                 DatetimeValue = as.POSIXct(
#'                   "2015-01-01"
#'                 )
#'               )
#'             )
#'           )
#'         )
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_batch_write
clouddirectory_batch_write <- function(DirectoryArn, Operations) {
  op <- new_operation(
    name = "BatchWrite",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/batchwrite",
    paginator = list()
  )
  input <- .clouddirectory$batch_write_input(DirectoryArn = DirectoryArn, Operations = Operations)
  output <- .clouddirectory$batch_write_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$batch_write <- clouddirectory_batch_write

#' Creates a Directory by copying the published schema into the directory
#'
#' Creates a Directory by copying the published schema into the directory.
#' A directory cannot be created without a schema.
#' 
#' You can also quickly create a directory using a managed schema, called
#' the `QuickStartSchema`. For more information, see [Managed
#' Schema](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html)
#' in the *Amazon Cloud Directory Developer Guide*.
#'
#' @usage
#' clouddirectory_create_directory(Name, SchemaArn)
#'
#' @param Name &#91;required&#93; The name of the Directory. Should be unique per account, per region.
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) of the published schema that will be
#' copied into the data Directory. For more information, see arns.
#'
#' @section Request syntax:
#' ```
#' svc$create_directory(
#'   Name = "string",
#'   SchemaArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_directory
clouddirectory_create_directory <- function(Name, SchemaArn) {
  op <- new_operation(
    name = "CreateDirectory",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/directory/create",
    paginator = list()
  )
  input <- .clouddirectory$create_directory_input(Name = Name, SchemaArn = SchemaArn)
  output <- .clouddirectory$create_directory_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_directory <- clouddirectory_create_directory

#' Creates a new Facet in a schema
#'
#' Creates a new Facet in a schema. Facet creation is allowed only in
#' development or applied schemas.
#'
#' @usage
#' clouddirectory_create_facet(SchemaArn, Name, Attributes, ObjectType,
#'   FacetStyle)
#'
#' @param SchemaArn &#91;required&#93; The schema ARN in which the new Facet will be created. For more
#' information, see arns.
#' @param Name &#91;required&#93; The name of the Facet, which is unique for a given schema.
#' @param Attributes The attributes that are associated with the Facet.
#' @param ObjectType Specifies whether a given object created from this facet is of type
#' node, leaf node, policy or index.
#' 
#' -   Node: Can have multiple children but one parent.
#' 
#' <!-- -->
#' 
#' -   Leaf node: Cannot have children but can have multiple parents.
#' 
#' <!-- -->
#' 
#' -   Policy: Allows you to store a policy document and policy type. For
#'     more information, see
#'     [Policies](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
#' 
#' <!-- -->
#' 
#' -   Index: Can be created with the Index API.
#' @param FacetStyle There are two different styles that you can define on any given facet,
#' `Static` and `Dynamic`. For static facets, all attributes must be
#' defined in the schema. For dynamic facets, attributes can be defined
#' during data plane operations.
#'
#' @section Request syntax:
#' ```
#' svc$create_facet(
#'   SchemaArn = "string",
#'   Name = "string",
#'   Attributes = list(
#'     list(
#'       Name = "string",
#'       AttributeDefinition = list(
#'         Type = "STRING"|"BINARY"|"BOOLEAN"|"NUMBER"|"DATETIME"|"VARIANT",
#'         DefaultValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         IsImmutable = TRUE|FALSE,
#'         Rules = list(
#'           list(
#'             Type = "BINARY_LENGTH"|"NUMBER_COMPARISON"|"STRING_FROM_SET"|"STRING_LENGTH",
#'             Parameters = list(
#'               "string"
#'             )
#'           )
#'         )
#'       ),
#'       AttributeReference = list(
#'         TargetFacetName = "string",
#'         TargetAttributeName = "string"
#'       ),
#'       RequiredBehavior = "REQUIRED_ALWAYS"|"NOT_REQUIRED"
#'     )
#'   ),
#'   ObjectType = "NODE"|"LEAF_NODE"|"POLICY"|"INDEX",
#'   FacetStyle = "STATIC"|"DYNAMIC"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_facet
clouddirectory_create_facet <- function(SchemaArn, Name, Attributes = NULL, ObjectType = NULL, FacetStyle = NULL) {
  op <- new_operation(
    name = "CreateFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/facet/create",
    paginator = list()
  )
  input <- .clouddirectory$create_facet_input(SchemaArn = SchemaArn, Name = Name, Attributes = Attributes, ObjectType = ObjectType, FacetStyle = FacetStyle)
  output <- .clouddirectory$create_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_facet <- clouddirectory_create_facet

#' Creates an index object
#'
#' Creates an index object. See [Indexing and
#' search](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html)
#' for more information.
#'
#' @usage
#' clouddirectory_create_index(DirectoryArn, OrderedIndexedAttributeList,
#'   IsUnique, ParentReference, LinkName)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory where the index should be created.
#' @param OrderedIndexedAttributeList &#91;required&#93; Specifies the attributes that should be indexed on. Currently only a
#' single attribute is supported.
#' @param IsUnique &#91;required&#93; Indicates whether the attribute that is being indexed has unique values
#' or not.
#' @param ParentReference A reference to the parent object that contains the index object.
#' @param LinkName The name of the link between the parent object and the index object.
#'
#' @section Request syntax:
#' ```
#' svc$create_index(
#'   DirectoryArn = "string",
#'   OrderedIndexedAttributeList = list(
#'     list(
#'       SchemaArn = "string",
#'       FacetName = "string",
#'       Name = "string"
#'     )
#'   ),
#'   IsUnique = TRUE|FALSE,
#'   ParentReference = list(
#'     Selector = "string"
#'   ),
#'   LinkName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_index
clouddirectory_create_index <- function(DirectoryArn, OrderedIndexedAttributeList, IsUnique, ParentReference = NULL, LinkName = NULL) {
  op <- new_operation(
    name = "CreateIndex",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/index",
    paginator = list()
  )
  input <- .clouddirectory$create_index_input(DirectoryArn = DirectoryArn, OrderedIndexedAttributeList = OrderedIndexedAttributeList, IsUnique = IsUnique, ParentReference = ParentReference, LinkName = LinkName)
  output <- .clouddirectory$create_index_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_index <- clouddirectory_create_index

#' Creates an object in a Directory
#'
#' Creates an object in a Directory. Additionally attaches the object to a
#' parent, if a parent reference and `LinkName` is specified. An object is
#' simply a collection of Facet attributes. You can also use this API call
#' to create a policy object, if the facet from which you create the object
#' is a policy facet.
#'
#' @usage
#' clouddirectory_create_object(DirectoryArn, SchemaFacets,
#'   ObjectAttributeList, ParentReference, LinkName)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory in
#' which the object will be created. For more information, see arns.
#' @param SchemaFacets &#91;required&#93; A list of schema facets to be associated with the object. Do not provide
#' minor version components. See SchemaFacet for details.
#' @param ObjectAttributeList The attribute map whose attribute ARN contains the key and attribute
#' value as the map value.
#' @param ParentReference If specified, the parent reference to which this object will be
#' attached.
#' @param LinkName The name of link that is used to attach this object to a parent.
#'
#' @section Request syntax:
#' ```
#' svc$create_object(
#'   DirectoryArn = "string",
#'   SchemaFacets = list(
#'     list(
#'       SchemaArn = "string",
#'       FacetName = "string"
#'     )
#'   ),
#'   ObjectAttributeList = list(
#'     list(
#'       Key = list(
#'         SchemaArn = "string",
#'         FacetName = "string",
#'         Name = "string"
#'       ),
#'       Value = list(
#'         StringValue = "string",
#'         BinaryValue = raw,
#'         BooleanValue = TRUE|FALSE,
#'         NumberValue = "string",
#'         DatetimeValue = as.POSIXct(
#'           "2015-01-01"
#'         )
#'       )
#'     )
#'   ),
#'   ParentReference = list(
#'     Selector = "string"
#'   ),
#'   LinkName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_object
clouddirectory_create_object <- function(DirectoryArn, SchemaFacets, ObjectAttributeList = NULL, ParentReference = NULL, LinkName = NULL) {
  op <- new_operation(
    name = "CreateObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object",
    paginator = list()
  )
  input <- .clouddirectory$create_object_input(DirectoryArn = DirectoryArn, SchemaFacets = SchemaFacets, ObjectAttributeList = ObjectAttributeList, ParentReference = ParentReference, LinkName = LinkName)
  output <- .clouddirectory$create_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_object <- clouddirectory_create_object

#' Creates a new schema in a development state
#'
#' Creates a new schema in a development state. A schema can exist in three
#' phases:
#' 
#' -   *Development:* This is a mutable phase of the schema. All new
#'     schemas are in the development phase. Once the schema is finalized,
#'     it can be published.
#' 
#' -   *Published:* Published schemas are immutable and have a version
#'     associated with them.
#' 
#' -   *Applied:* Applied schemas are mutable in a way that allows you to
#'     add new schema facets. You can also add new, nonrequired attributes
#'     to existing schema facets. You can apply only published schemas to
#'     directories.
#'
#' @usage
#' clouddirectory_create_schema(Name)
#'
#' @param Name &#91;required&#93; The name that is associated with the schema. This is unique to each
#' account and in each region.
#'
#' @section Request syntax:
#' ```
#' svc$create_schema(
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_schema
clouddirectory_create_schema <- function(Name) {
  op <- new_operation(
    name = "CreateSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/create",
    paginator = list()
  )
  input <- .clouddirectory$create_schema_input(Name = Name)
  output <- .clouddirectory$create_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_schema <- clouddirectory_create_schema

#' Creates a TypedLinkFacet
#'
#' Creates a TypedLinkFacet. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_create_typed_link_facet(SchemaArn, Facet)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param Facet &#91;required&#93; Facet structure that is associated with the typed link facet.
#'
#' @section Request syntax:
#' ```
#' svc$create_typed_link_facet(
#'   SchemaArn = "string",
#'   Facet = list(
#'     Name = "string",
#'     Attributes = list(
#'       list(
#'         Name = "string",
#'         Type = "STRING"|"BINARY"|"BOOLEAN"|"NUMBER"|"DATETIME"|"VARIANT",
#'         DefaultValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         IsImmutable = TRUE|FALSE,
#'         Rules = list(
#'           list(
#'             Type = "BINARY_LENGTH"|"NUMBER_COMPARISON"|"STRING_FROM_SET"|"STRING_LENGTH",
#'             Parameters = list(
#'               "string"
#'             )
#'           )
#'         ),
#'         RequiredBehavior = "REQUIRED_ALWAYS"|"NOT_REQUIRED"
#'       )
#'     ),
#'     IdentityAttributeOrder = list(
#'       "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_create_typed_link_facet
clouddirectory_create_typed_link_facet <- function(SchemaArn, Facet) {
  op <- new_operation(
    name = "CreateTypedLinkFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
    paginator = list()
  )
  input <- .clouddirectory$create_typed_link_facet_input(SchemaArn = SchemaArn, Facet = Facet)
  output <- .clouddirectory$create_typed_link_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$create_typed_link_facet <- clouddirectory_create_typed_link_facet

#' Deletes a directory
#'
#' Deletes a directory. Only disabled directories can be deleted. A deleted
#' directory cannot be undone. Exercise extreme caution when deleting
#' directories.
#'
#' @usage
#' clouddirectory_delete_directory(DirectoryArn)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory to delete.
#'
#' @section Request syntax:
#' ```
#' svc$delete_directory(
#'   DirectoryArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_delete_directory
clouddirectory_delete_directory <- function(DirectoryArn) {
  op <- new_operation(
    name = "DeleteDirectory",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/directory",
    paginator = list()
  )
  input <- .clouddirectory$delete_directory_input(DirectoryArn = DirectoryArn)
  output <- .clouddirectory$delete_directory_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$delete_directory <- clouddirectory_delete_directory

#' Deletes a given Facet
#'
#' Deletes a given Facet. All attributes and Rules that are associated with
#' the facet will be deleted. Only development schema facets are allowed
#' deletion.
#'
#' @usage
#' clouddirectory_delete_facet(SchemaArn, Name)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Facet. For
#' more information, see arns.
#' @param Name &#91;required&#93; The name of the facet to delete.
#'
#' @section Request syntax:
#' ```
#' svc$delete_facet(
#'   SchemaArn = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_delete_facet
clouddirectory_delete_facet <- function(SchemaArn, Name) {
  op <- new_operation(
    name = "DeleteFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/facet/delete",
    paginator = list()
  )
  input <- .clouddirectory$delete_facet_input(SchemaArn = SchemaArn, Name = Name)
  output <- .clouddirectory$delete_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$delete_facet <- clouddirectory_delete_facet

#' Deletes an object and its associated attributes
#'
#' Deletes an object and its associated attributes. Only objects with no
#' children and no parents can be deleted. The maximum number of attributes
#' that can be deleted during an object deletion is 30. For more
#' information, see [Amazon Cloud Directory
#' Limits](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
#'
#' @usage
#' clouddirectory_delete_object(DirectoryArn, ObjectReference)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param ObjectReference &#91;required&#93; A reference that identifies the object.
#'
#' @section Request syntax:
#' ```
#' svc$delete_object(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_delete_object
clouddirectory_delete_object <- function(DirectoryArn, ObjectReference) {
  op <- new_operation(
    name = "DeleteObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/delete",
    paginator = list()
  )
  input <- .clouddirectory$delete_object_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference)
  output <- .clouddirectory$delete_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$delete_object <- clouddirectory_delete_object

#' Deletes a given schema
#'
#' Deletes a given schema. Schemas in a development and published state can
#' only be deleted.
#'
#' @usage
#' clouddirectory_delete_schema(SchemaArn)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) of the development schema. For more
#' information, see arns.
#'
#' @section Request syntax:
#' ```
#' svc$delete_schema(
#'   SchemaArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_delete_schema
clouddirectory_delete_schema <- function(SchemaArn) {
  op <- new_operation(
    name = "DeleteSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema",
    paginator = list()
  )
  input <- .clouddirectory$delete_schema_input(SchemaArn = SchemaArn)
  output <- .clouddirectory$delete_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$delete_schema <- clouddirectory_delete_schema

#' Deletes a TypedLinkFacet
#'
#' Deletes a TypedLinkFacet. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_delete_typed_link_facet(SchemaArn, Name)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param Name &#91;required&#93; The unique name of the typed link facet.
#'
#' @section Request syntax:
#' ```
#' svc$delete_typed_link_facet(
#'   SchemaArn = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_delete_typed_link_facet
clouddirectory_delete_typed_link_facet <- function(SchemaArn, Name) {
  op <- new_operation(
    name = "DeleteTypedLinkFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
    paginator = list()
  )
  input <- .clouddirectory$delete_typed_link_facet_input(SchemaArn = SchemaArn, Name = Name)
  output <- .clouddirectory$delete_typed_link_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$delete_typed_link_facet <- clouddirectory_delete_typed_link_facet

#' Detaches the specified object from the specified index
#'
#' Detaches the specified object from the specified index.
#'
#' @usage
#' clouddirectory_detach_from_index(DirectoryArn, IndexReference,
#'   TargetReference)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory the index and object
#' exist in.
#' @param IndexReference &#91;required&#93; A reference to the index object.
#' @param TargetReference &#91;required&#93; A reference to the object being detached from the index.
#'
#' @section Request syntax:
#' ```
#' svc$detach_from_index(
#'   DirectoryArn = "string",
#'   IndexReference = list(
#'     Selector = "string"
#'   ),
#'   TargetReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_detach_from_index
clouddirectory_detach_from_index <- function(DirectoryArn, IndexReference, TargetReference) {
  op <- new_operation(
    name = "DetachFromIndex",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/index/detach",
    paginator = list()
  )
  input <- .clouddirectory$detach_from_index_input(DirectoryArn = DirectoryArn, IndexReference = IndexReference, TargetReference = TargetReference)
  output <- .clouddirectory$detach_from_index_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$detach_from_index <- clouddirectory_detach_from_index

#' Detaches a given object from the parent object
#'
#' Detaches a given object from the parent object. The object that is to be
#' detached from the parent is specified by the link name.
#'
#' @usage
#' clouddirectory_detach_object(DirectoryArn, ParentReference, LinkName)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where objects reside. For more information, see arns.
#' @param ParentReference &#91;required&#93; The parent reference from which the object with the specified link name
#' is detached.
#' @param LinkName &#91;required&#93; The link name associated with the object that needs to be detached.
#'
#' @section Request syntax:
#' ```
#' svc$detach_object(
#'   DirectoryArn = "string",
#'   ParentReference = list(
#'     Selector = "string"
#'   ),
#'   LinkName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_detach_object
clouddirectory_detach_object <- function(DirectoryArn, ParentReference, LinkName) {
  op <- new_operation(
    name = "DetachObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/detach",
    paginator = list()
  )
  input <- .clouddirectory$detach_object_input(DirectoryArn = DirectoryArn, ParentReference = ParentReference, LinkName = LinkName)
  output <- .clouddirectory$detach_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$detach_object <- clouddirectory_detach_object

#' Detaches a policy from an object
#'
#' Detaches a policy from an object.
#'
#' @usage
#' clouddirectory_detach_policy(DirectoryArn, PolicyReference,
#'   ObjectReference)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where both objects reside. For more information, see arns.
#' @param PolicyReference &#91;required&#93; Reference that identifies the policy object.
#' @param ObjectReference &#91;required&#93; Reference that identifies the object whose policy object will be
#' detached.
#'
#' @section Request syntax:
#' ```
#' svc$detach_policy(
#'   DirectoryArn = "string",
#'   PolicyReference = list(
#'     Selector = "string"
#'   ),
#'   ObjectReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_detach_policy
clouddirectory_detach_policy <- function(DirectoryArn, PolicyReference, ObjectReference) {
  op <- new_operation(
    name = "DetachPolicy",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/policy/detach",
    paginator = list()
  )
  input <- .clouddirectory$detach_policy_input(DirectoryArn = DirectoryArn, PolicyReference = PolicyReference, ObjectReference = ObjectReference)
  output <- .clouddirectory$detach_policy_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$detach_policy <- clouddirectory_detach_policy

#' Detaches a typed link from a specified source and target object
#'
#' Detaches a typed link from a specified source and target object. For
#' more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_detach_typed_link(DirectoryArn, TypedLinkSpecifier)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory where you want to detach
#' the typed link.
#' @param TypedLinkSpecifier &#91;required&#93; Used to accept a typed link specifier as input.
#'
#' @section Request syntax:
#' ```
#' svc$detach_typed_link(
#'   DirectoryArn = "string",
#'   TypedLinkSpecifier = list(
#'     TypedLinkFacet = list(
#'       SchemaArn = "string",
#'       TypedLinkName = "string"
#'     ),
#'     SourceObjectReference = list(
#'       Selector = "string"
#'     ),
#'     TargetObjectReference = list(
#'       Selector = "string"
#'     ),
#'     IdentityAttributeValues = list(
#'       list(
#'         AttributeName = "string",
#'         Value = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_detach_typed_link
clouddirectory_detach_typed_link <- function(DirectoryArn, TypedLinkSpecifier) {
  op <- new_operation(
    name = "DetachTypedLink",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/detach",
    paginator = list()
  )
  input <- .clouddirectory$detach_typed_link_input(DirectoryArn = DirectoryArn, TypedLinkSpecifier = TypedLinkSpecifier)
  output <- .clouddirectory$detach_typed_link_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$detach_typed_link <- clouddirectory_detach_typed_link

#' Disables the specified directory
#'
#' Disables the specified directory. Disabled directories cannot be read or
#' written to. Only enabled directories can be disabled. Disabled
#' directories may be reenabled.
#'
#' @usage
#' clouddirectory_disable_directory(DirectoryArn)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory to disable.
#'
#' @section Request syntax:
#' ```
#' svc$disable_directory(
#'   DirectoryArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_disable_directory
clouddirectory_disable_directory <- function(DirectoryArn) {
  op <- new_operation(
    name = "DisableDirectory",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/directory/disable",
    paginator = list()
  )
  input <- .clouddirectory$disable_directory_input(DirectoryArn = DirectoryArn)
  output <- .clouddirectory$disable_directory_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$disable_directory <- clouddirectory_disable_directory

#' Enables the specified directory
#'
#' Enables the specified directory. Only disabled directories can be
#' enabled. Once enabled, the directory can then be read and written to.
#'
#' @usage
#' clouddirectory_enable_directory(DirectoryArn)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory to enable.
#'
#' @section Request syntax:
#' ```
#' svc$enable_directory(
#'   DirectoryArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_enable_directory
clouddirectory_enable_directory <- function(DirectoryArn) {
  op <- new_operation(
    name = "EnableDirectory",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/directory/enable",
    paginator = list()
  )
  input <- .clouddirectory$enable_directory_input(DirectoryArn = DirectoryArn)
  output <- .clouddirectory$enable_directory_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$enable_directory <- clouddirectory_enable_directory

#' Returns current applied schema version ARN, including the minor version
#' in use
#'
#' Returns current applied schema version ARN, including the minor version
#' in use.
#'
#' @usage
#' clouddirectory_get_applied_schema_version(SchemaArn)
#'
#' @param SchemaArn &#91;required&#93; The ARN of the applied schema.
#'
#' @section Request syntax:
#' ```
#' svc$get_applied_schema_version(
#'   SchemaArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_applied_schema_version
clouddirectory_get_applied_schema_version <- function(SchemaArn) {
  op <- new_operation(
    name = "GetAppliedSchemaVersion",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
    paginator = list()
  )
  input <- .clouddirectory$get_applied_schema_version_input(SchemaArn = SchemaArn)
  output <- .clouddirectory$get_applied_schema_version_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_applied_schema_version <- clouddirectory_get_applied_schema_version

#' Retrieves metadata about a directory
#'
#' Retrieves metadata about a directory.
#'
#' @usage
#' clouddirectory_get_directory(DirectoryArn)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory.
#'
#' @section Request syntax:
#' ```
#' svc$get_directory(
#'   DirectoryArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_directory
clouddirectory_get_directory <- function(DirectoryArn) {
  op <- new_operation(
    name = "GetDirectory",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/directory/get",
    paginator = list()
  )
  input <- .clouddirectory$get_directory_input(DirectoryArn = DirectoryArn)
  output <- .clouddirectory$get_directory_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_directory <- clouddirectory_get_directory

#' Gets details of the Facet, such as facet name, attributes, Rules, or
#' ObjectType
#'
#' Gets details of the Facet, such as facet name, attributes, Rules, or
#' `ObjectType`. You can call this on all kinds of schema facets \\--
#' published, development, or applied.
#'
#' @usage
#' clouddirectory_get_facet(SchemaArn, Name)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Facet. For
#' more information, see arns.
#' @param Name &#91;required&#93; The name of the facet to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$get_facet(
#'   SchemaArn = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_facet
clouddirectory_get_facet <- function(SchemaArn, Name) {
  op <- new_operation(
    name = "GetFacet",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/facet",
    paginator = list()
  )
  input <- .clouddirectory$get_facet_input(SchemaArn = SchemaArn, Name = Name)
  output <- .clouddirectory$get_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_facet <- clouddirectory_get_facet

#' Retrieves attributes that are associated with a typed link
#'
#' Retrieves attributes that are associated with a typed link.
#'
#' @usage
#' clouddirectory_get_link_attributes(DirectoryArn, TypedLinkSpecifier,
#'   AttributeNames, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the typed link resides. For more information, see arns or [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#' @param TypedLinkSpecifier &#91;required&#93; Allows a typed link specifier to be accepted as input.
#' @param AttributeNames &#91;required&#93; A list of attribute names whose values will be retrieved.
#' @param ConsistencyLevel The consistency level at which to retrieve the attributes on a typed
#' link.
#'
#' @section Request syntax:
#' ```
#' svc$get_link_attributes(
#'   DirectoryArn = "string",
#'   TypedLinkSpecifier = list(
#'     TypedLinkFacet = list(
#'       SchemaArn = "string",
#'       TypedLinkName = "string"
#'     ),
#'     SourceObjectReference = list(
#'       Selector = "string"
#'     ),
#'     TargetObjectReference = list(
#'       Selector = "string"
#'     ),
#'     IdentityAttributeValues = list(
#'       list(
#'         AttributeName = "string",
#'         Value = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   AttributeNames = list(
#'     "string"
#'   ),
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_link_attributes
clouddirectory_get_link_attributes <- function(DirectoryArn, TypedLinkSpecifier, AttributeNames, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "GetLinkAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/attributes/get",
    paginator = list()
  )
  input <- .clouddirectory$get_link_attributes_input(DirectoryArn = DirectoryArn, TypedLinkSpecifier = TypedLinkSpecifier, AttributeNames = AttributeNames, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$get_link_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_link_attributes <- clouddirectory_get_link_attributes

#' Retrieves attributes within a facet that are associated with an object
#'
#' Retrieves attributes within a facet that are associated with an object.
#'
#' @usage
#' clouddirectory_get_object_attributes(DirectoryArn, ObjectReference,
#'   ConsistencyLevel, SchemaFacet, AttributeNames)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides.
#' @param ObjectReference &#91;required&#93; Reference that identifies the object whose attributes will be retrieved.
#' @param ConsistencyLevel The consistency level at which to retrieve the attributes on an object.
#' @param SchemaFacet &#91;required&#93; Identifier for the facet whose attributes will be retrieved. See
#' SchemaFacet for details.
#' @param AttributeNames &#91;required&#93; List of attribute names whose values will be retrieved.
#'
#' @section Request syntax:
#' ```
#' svc$get_object_attributes(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL",
#'   SchemaFacet = list(
#'     SchemaArn = "string",
#'     FacetName = "string"
#'   ),
#'   AttributeNames = list(
#'     "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_object_attributes
clouddirectory_get_object_attributes <- function(DirectoryArn, ObjectReference, ConsistencyLevel = NULL, SchemaFacet, AttributeNames) {
  op <- new_operation(
    name = "GetObjectAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/attributes/get",
    paginator = list()
  )
  input <- .clouddirectory$get_object_attributes_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, ConsistencyLevel = ConsistencyLevel, SchemaFacet = SchemaFacet, AttributeNames = AttributeNames)
  output <- .clouddirectory$get_object_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_object_attributes <- clouddirectory_get_object_attributes

#' Retrieves metadata about an object
#'
#' Retrieves metadata about an object.
#'
#' @usage
#' clouddirectory_get_object_information(DirectoryArn, ObjectReference,
#'   ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory being retrieved.
#' @param ObjectReference &#91;required&#93; A reference to the object.
#' @param ConsistencyLevel The consistency level at which to retrieve the object information.
#'
#' @section Request syntax:
#' ```
#' svc$get_object_information(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_object_information
clouddirectory_get_object_information <- function(DirectoryArn, ObjectReference, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "GetObjectInformation",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/information",
    paginator = list()
  )
  input <- .clouddirectory$get_object_information_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$get_object_information_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_object_information <- clouddirectory_get_object_information

#' Retrieves a JSON representation of the schema
#'
#' Retrieves a JSON representation of the schema. See [JSON Schema
#' Format](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
#' for more information.
#'
#' @usage
#' clouddirectory_get_schema_as_json(SchemaArn)
#'
#' @param SchemaArn &#91;required&#93; The ARN of the schema to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$get_schema_as_json(
#'   SchemaArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_schema_as_json
clouddirectory_get_schema_as_json <- function(SchemaArn) {
  op <- new_operation(
    name = "GetSchemaAsJson",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/json",
    paginator = list()
  )
  input <- .clouddirectory$get_schema_as_json_input(SchemaArn = SchemaArn)
  output <- .clouddirectory$get_schema_as_json_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_schema_as_json <- clouddirectory_get_schema_as_json

#' Returns the identity attribute order for a specific TypedLinkFacet
#'
#' Returns the identity attribute order for a specific TypedLinkFacet. For
#' more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_get_typed_link_facet_information(SchemaArn, Name)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param Name &#91;required&#93; The unique name of the typed link facet.
#'
#' @section Request syntax:
#' ```
#' svc$get_typed_link_facet_information(
#'   SchemaArn = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_get_typed_link_facet_information
clouddirectory_get_typed_link_facet_information <- function(SchemaArn, Name) {
  op <- new_operation(
    name = "GetTypedLinkFacetInformation",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
    paginator = list()
  )
  input <- .clouddirectory$get_typed_link_facet_information_input(SchemaArn = SchemaArn, Name = Name)
  output <- .clouddirectory$get_typed_link_facet_information_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$get_typed_link_facet_information <- clouddirectory_get_typed_link_facet_information

#' Lists schema major versions applied to a directory
#'
#' Lists schema major versions applied to a directory. If `SchemaArn` is
#' provided, lists the minor version.
#'
#' @usage
#' clouddirectory_list_applied_schema_arns(DirectoryArn, SchemaArn,
#'   NextToken, MaxResults)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory you are listing.
#' @param SchemaArn The response for `ListAppliedSchemaArns` when this parameter is used
#' will list all minor version ARNs for a major version.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_applied_schema_arns(
#'   DirectoryArn = "string",
#'   SchemaArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_applied_schema_arns
clouddirectory_list_applied_schema_arns <- function(DirectoryArn, SchemaArn = NULL, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListAppliedSchemaArns",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/applied",
    paginator = list()
  )
  input <- .clouddirectory$list_applied_schema_arns_input(DirectoryArn = DirectoryArn, SchemaArn = SchemaArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_applied_schema_arns_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_applied_schema_arns <- clouddirectory_list_applied_schema_arns

#' Lists indices attached to the specified object
#'
#' Lists indices attached to the specified object.
#'
#' @usage
#' clouddirectory_list_attached_indices(DirectoryArn, TargetReference,
#'   NextToken, MaxResults, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory.
#' @param TargetReference &#91;required&#93; A reference to the object that has indices attached.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#' @param ConsistencyLevel The consistency level to use for this operation.
#'
#' @section Request syntax:
#' ```
#' svc$list_attached_indices(
#'   DirectoryArn = "string",
#'   TargetReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_attached_indices
clouddirectory_list_attached_indices <- function(DirectoryArn, TargetReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListAttachedIndices",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/indices",
    paginator = list()
  )
  input <- .clouddirectory$list_attached_indices_input(DirectoryArn = DirectoryArn, TargetReference = TargetReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_attached_indices_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_attached_indices <- clouddirectory_list_attached_indices

#' Retrieves each Amazon Resource Name (ARN) of schemas in the development
#' state
#'
#' Retrieves each Amazon Resource Name (ARN) of schemas in the development
#' state.
#'
#' @usage
#' clouddirectory_list_development_schema_arns(NextToken, MaxResults)
#'
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_development_schema_arns(
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_development_schema_arns
clouddirectory_list_development_schema_arns <- function(NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListDevelopmentSchemaArns",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/development",
    paginator = list()
  )
  input <- .clouddirectory$list_development_schema_arns_input(NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_development_schema_arns_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_development_schema_arns <- clouddirectory_list_development_schema_arns

#' Lists directories created within an account
#'
#' Lists directories created within an account.
#'
#' @usage
#' clouddirectory_list_directories(NextToken, MaxResults, state)
#'
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#' @param state The state of the directories in the list. Can be either Enabled,
#' Disabled, or Deleted.
#'
#' @section Request syntax:
#' ```
#' svc$list_directories(
#'   NextToken = "string",
#'   MaxResults = 123,
#'   state = "ENABLED"|"DISABLED"|"DELETED"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_directories
clouddirectory_list_directories <- function(NextToken = NULL, MaxResults = NULL, state = NULL) {
  op <- new_operation(
    name = "ListDirectories",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/directory/list",
    paginator = list()
  )
  input <- .clouddirectory$list_directories_input(NextToken = NextToken, MaxResults = MaxResults, state = state)
  output <- .clouddirectory$list_directories_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_directories <- clouddirectory_list_directories

#' Retrieves attributes attached to the facet
#'
#' Retrieves attributes attached to the facet.
#'
#' @usage
#' clouddirectory_list_facet_attributes(SchemaArn, Name, NextToken,
#'   MaxResults)
#'
#' @param SchemaArn &#91;required&#93; The ARN of the schema where the facet resides.
#' @param Name &#91;required&#93; The name of the facet whose attributes will be retrieved.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_facet_attributes(
#'   SchemaArn = "string",
#'   Name = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_facet_attributes
clouddirectory_list_facet_attributes <- function(SchemaArn, Name, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListFacetAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/facet/attributes",
    paginator = list()
  )
  input <- .clouddirectory$list_facet_attributes_input(SchemaArn = SchemaArn, Name = Name, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_facet_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_facet_attributes <- clouddirectory_list_facet_attributes

#' Retrieves the names of facets that exist in a schema
#'
#' Retrieves the names of facets that exist in a schema.
#'
#' @usage
#' clouddirectory_list_facet_names(SchemaArn, NextToken, MaxResults)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) to retrieve facet names from.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_facet_names(
#'   SchemaArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_facet_names
clouddirectory_list_facet_names <- function(SchemaArn, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListFacetNames",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/facet/list",
    paginator = list()
  )
  input <- .clouddirectory$list_facet_names_input(SchemaArn = SchemaArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_facet_names_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_facet_names <- clouddirectory_list_facet_names

#' Returns a paginated list of all the incoming TypedLinkSpecifier
#' information for an object
#'
#' Returns a paginated list of all the incoming TypedLinkSpecifier
#' information for an object. It also supports filtering by typed link
#' facet and identity attributes. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_list_incoming_typed_links(DirectoryArn, ObjectReference,
#'   FilterAttributeRanges, FilterTypedLink, NextToken, MaxResults,
#'   ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory where you want to list
#' the typed links.
#' @param ObjectReference &#91;required&#93; Reference that identifies the object whose attributes will be listed.
#' @param FilterAttributeRanges Provides range filters for multiple attributes. When providing ranges to
#' typed link selection, any inexact ranges must be specified at the end.
#' Any attributes that do not have a range specified are presumed to match
#' the entire range.
#' @param FilterTypedLink Filters are interpreted in the order of the attributes on the typed link
#' facet, not the order in which they are supplied to any API calls.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#' @param ConsistencyLevel The consistency level to execute the request at.
#'
#' @section Request syntax:
#' ```
#' svc$list_incoming_typed_links(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   FilterAttributeRanges = list(
#'     list(
#'       AttributeName = "string",
#'       Range = list(
#'         StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         StartValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         EndValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   FilterTypedLink = list(
#'     SchemaArn = "string",
#'     TypedLinkName = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_incoming_typed_links
clouddirectory_list_incoming_typed_links <- function(DirectoryArn, ObjectReference, FilterAttributeRanges = NULL, FilterTypedLink = NULL, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListIncomingTypedLinks",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/incoming",
    paginator = list()
  )
  input <- .clouddirectory$list_incoming_typed_links_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, FilterAttributeRanges = FilterAttributeRanges, FilterTypedLink = FilterTypedLink, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_incoming_typed_links_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_incoming_typed_links <- clouddirectory_list_incoming_typed_links

#' Lists objects attached to the specified index
#'
#' Lists objects attached to the specified index.
#'
#' @usage
#' clouddirectory_list_index(DirectoryArn, RangesOnIndexedValues,
#'   IndexReference, MaxResults, NextToken, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory that the index exists in.
#' @param RangesOnIndexedValues Specifies the ranges of indexed values that you want to query.
#' @param IndexReference &#91;required&#93; The reference to the index to list.
#' @param MaxResults The maximum number of objects in a single page to retrieve from the
#' index during a request. For more information, see [Amazon Cloud
#' Directory
#' Limits](http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
#' @param NextToken The pagination token.
#' @param ConsistencyLevel The consistency level to execute the request at.
#'
#' @section Request syntax:
#' ```
#' svc$list_index(
#'   DirectoryArn = "string",
#'   RangesOnIndexedValues = list(
#'     list(
#'       AttributeKey = list(
#'         SchemaArn = "string",
#'         FacetName = "string",
#'         Name = "string"
#'       ),
#'       Range = list(
#'         StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         StartValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         EndValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   IndexReference = list(
#'     Selector = "string"
#'   ),
#'   MaxResults = 123,
#'   NextToken = "string",
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_index
clouddirectory_list_index <- function(DirectoryArn, RangesOnIndexedValues = NULL, IndexReference, MaxResults = NULL, NextToken = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListIndex",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/index/targets",
    paginator = list()
  )
  input <- .clouddirectory$list_index_input(DirectoryArn = DirectoryArn, RangesOnIndexedValues = RangesOnIndexedValues, IndexReference = IndexReference, MaxResults = MaxResults, NextToken = NextToken, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_index_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_index <- clouddirectory_list_index

#' Lists the major version families of each managed schema
#'
#' Lists the major version families of each managed schema. If a major
#' version ARN is provided as SchemaArn, the minor version revisions in
#' that family are listed instead.
#'
#' @usage
#' clouddirectory_list_managed_schema_arns(SchemaArn, NextToken,
#'   MaxResults)
#'
#' @param SchemaArn The response for ListManagedSchemaArns. When this parameter is used, all
#' minor version ARNs for a major version are listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_managed_schema_arns(
#'   SchemaArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_managed_schema_arns
clouddirectory_list_managed_schema_arns <- function(SchemaArn = NULL, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListManagedSchemaArns",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/managed",
    paginator = list()
  )
  input <- .clouddirectory$list_managed_schema_arns_input(SchemaArn = SchemaArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_managed_schema_arns_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_managed_schema_arns <- clouddirectory_list_managed_schema_arns

#' Lists all attributes that are associated with an object
#'
#' Lists all attributes that are associated with an object.
#'
#' @usage
#' clouddirectory_list_object_attributes(DirectoryArn, ObjectReference,
#'   NextToken, MaxResults, ConsistencyLevel, FacetFilter)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object whose attributes will be
#' listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#' @param FacetFilter Used to filter the list of object attributes that are associated with a
#' certain facet.
#'
#' @section Request syntax:
#' ```
#' svc$list_object_attributes(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL",
#'   FacetFilter = list(
#'     SchemaArn = "string",
#'     FacetName = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_object_attributes
clouddirectory_list_object_attributes <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL, FacetFilter = NULL) {
  op <- new_operation(
    name = "ListObjectAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/attributes",
    paginator = list()
  )
  input <- .clouddirectory$list_object_attributes_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel, FacetFilter = FacetFilter)
  output <- .clouddirectory$list_object_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_object_attributes <- clouddirectory_list_object_attributes

#' Returns a paginated list of child objects that are associated with a
#' given object
#'
#' Returns a paginated list of child objects that are associated with a
#' given object.
#'
#' @usage
#' clouddirectory_list_object_children(DirectoryArn, ObjectReference,
#'   NextToken, MaxResults, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object for which child objects are
#' being listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#'
#' @section Request syntax:
#' ```
#' svc$list_object_children(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_object_children
clouddirectory_list_object_children <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListObjectChildren",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/children",
    paginator = list()
  )
  input <- .clouddirectory$list_object_children_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_object_children_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_object_children <- clouddirectory_list_object_children

#' Retrieves all available parent paths for any object type such as node,
#' leaf node, policy node, and index node objects
#'
#' Retrieves all available parent paths for any object type such as node,
#' leaf node, policy node, and index node objects. For more information
#' about objects, see [Directory
#' Structure](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
#' 
#' Use this API to evaluate all parents for an object. The call returns all
#' objects from the root of the directory up to the requested object. The
#' API returns the number of paths based on user-defined `MaxResults`, in
#' case there are multiple paths to the parent. The order of the paths and
#' nodes returned is consistent among multiple API calls unless the objects
#' are deleted or moved. Paths not leading to the directory root are
#' ignored from the target object.
#'
#' @usage
#' clouddirectory_list_object_parent_paths(DirectoryArn, ObjectReference,
#'   NextToken, MaxResults)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory to which the parent path applies.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object whose parent paths are listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#'
#' @section Request syntax:
#' ```
#' svc$list_object_parent_paths(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_object_parent_paths
clouddirectory_list_object_parent_paths <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListObjectParentPaths",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/parentpaths",
    paginator = list()
  )
  input <- .clouddirectory$list_object_parent_paths_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_object_parent_paths_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_object_parent_paths <- clouddirectory_list_object_parent_paths

#' Lists parent objects that are associated with a given object in
#' pagination fashion
#'
#' Lists parent objects that are associated with a given object in
#' pagination fashion.
#'
#' @usage
#' clouddirectory_list_object_parents(DirectoryArn, ObjectReference,
#'   NextToken, MaxResults, ConsistencyLevel, IncludeAllLinksToEachParent)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object for which parent objects are
#' being listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#' @param IncludeAllLinksToEachParent When set to True, returns all ListObjectParentsResponse\\$ParentLinks.
#' There could be multiple links between a parent-child pair.
#'
#' @section Request syntax:
#' ```
#' svc$list_object_parents(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL",
#'   IncludeAllLinksToEachParent = TRUE|FALSE
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_object_parents
clouddirectory_list_object_parents <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL, IncludeAllLinksToEachParent = NULL) {
  op <- new_operation(
    name = "ListObjectParents",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/parent",
    paginator = list()
  )
  input <- .clouddirectory$list_object_parents_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel, IncludeAllLinksToEachParent = IncludeAllLinksToEachParent)
  output <- .clouddirectory$list_object_parents_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_object_parents <- clouddirectory_list_object_parents

#' Returns policies attached to an object in pagination fashion
#'
#' Returns policies attached to an object in pagination fashion.
#'
#' @usage
#' clouddirectory_list_object_policies(DirectoryArn, ObjectReference,
#'   NextToken, MaxResults, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where objects reside. For more information, see arns.
#' @param ObjectReference &#91;required&#93; Reference that identifies the object for which policies will be listed.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#'
#' @section Request syntax:
#' ```
#' svc$list_object_policies(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_object_policies
clouddirectory_list_object_policies <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListObjectPolicies",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/object/policy",
    paginator = list()
  )
  input <- .clouddirectory$list_object_policies_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_object_policies_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_object_policies <- clouddirectory_list_object_policies

#' Returns a paginated list of all the outgoing TypedLinkSpecifier
#' information for an object
#'
#' Returns a paginated list of all the outgoing TypedLinkSpecifier
#' information for an object. It also supports filtering by typed link
#' facet and identity attributes. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_list_outgoing_typed_links(DirectoryArn, ObjectReference,
#'   FilterAttributeRanges, FilterTypedLink, NextToken, MaxResults,
#'   ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) of the directory where you want to list
#' the typed links.
#' @param ObjectReference &#91;required&#93; A reference that identifies the object whose attributes will be listed.
#' @param FilterAttributeRanges Provides range filters for multiple attributes. When providing ranges to
#' typed link selection, any inexact ranges must be specified at the end.
#' Any attributes that do not have a range specified are presumed to match
#' the entire range.
#' @param FilterTypedLink Filters are interpreted in the order of the attributes defined on the
#' typed link facet, not the order they are supplied to any API calls.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#' @param ConsistencyLevel The consistency level to execute the request at.
#'
#' @section Request syntax:
#' ```
#' svc$list_outgoing_typed_links(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   FilterAttributeRanges = list(
#'     list(
#'       AttributeName = "string",
#'       Range = list(
#'         StartMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         StartValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         EndMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE",
#'         EndValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   FilterTypedLink = list(
#'     SchemaArn = "string",
#'     TypedLinkName = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_outgoing_typed_links
clouddirectory_list_outgoing_typed_links <- function(DirectoryArn, ObjectReference, FilterAttributeRanges = NULL, FilterTypedLink = NULL, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListOutgoingTypedLinks",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
    paginator = list()
  )
  input <- .clouddirectory$list_outgoing_typed_links_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, FilterAttributeRanges = FilterAttributeRanges, FilterTypedLink = FilterTypedLink, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_outgoing_typed_links_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_outgoing_typed_links <- clouddirectory_list_outgoing_typed_links

#' Returns all of the ObjectIdentifiers to which a given policy is attached
#'
#' Returns all of the `ObjectIdentifiers` to which a given policy is
#' attached.
#'
#' @usage
#' clouddirectory_list_policy_attachments(DirectoryArn, PolicyReference,
#'   NextToken, MaxResults, ConsistencyLevel)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where objects reside. For more information, see arns.
#' @param PolicyReference &#91;required&#93; The reference that identifies the policy object.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#' @param ConsistencyLevel Represents the manner and timing in which the successful write or update
#' of an object is reflected in a subsequent read operation of that same
#' object.
#'
#' @section Request syntax:
#' ```
#' svc$list_policy_attachments(
#'   DirectoryArn = "string",
#'   PolicyReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123,
#'   ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_policy_attachments
clouddirectory_list_policy_attachments <- function(DirectoryArn, PolicyReference, NextToken = NULL, MaxResults = NULL, ConsistencyLevel = NULL) {
  op <- new_operation(
    name = "ListPolicyAttachments",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/policy/attachment",
    paginator = list()
  )
  input <- .clouddirectory$list_policy_attachments_input(DirectoryArn = DirectoryArn, PolicyReference = PolicyReference, NextToken = NextToken, MaxResults = MaxResults, ConsistencyLevel = ConsistencyLevel)
  output <- .clouddirectory$list_policy_attachments_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_policy_attachments <- clouddirectory_list_policy_attachments

#' Lists the major version families of each published schema
#'
#' Lists the major version families of each published schema. If a major
#' version ARN is provided as `SchemaArn`, the minor version revisions in
#' that family are listed instead.
#'
#' @usage
#' clouddirectory_list_published_schema_arns(SchemaArn, NextToken,
#'   MaxResults)
#'
#' @param SchemaArn The response for `ListPublishedSchemaArns` when this parameter is used
#' will list all minor version ARNs for a major version.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_published_schema_arns(
#'   SchemaArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_published_schema_arns
clouddirectory_list_published_schema_arns <- function(SchemaArn = NULL, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListPublishedSchemaArns",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/schema/published",
    paginator = list()
  )
  input <- .clouddirectory$list_published_schema_arns_input(SchemaArn = SchemaArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_published_schema_arns_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_published_schema_arns <- clouddirectory_list_published_schema_arns

#' Returns tags for a resource
#'
#' Returns tags for a resource. Tagging is currently supported only for
#' directories with a limit of 50 tags per directory. All 50 tags are
#' returned for a given directory with this API call.
#'
#' @usage
#' clouddirectory_list_tags_for_resource(ResourceArn, NextToken,
#'   MaxResults)
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource. Tagging is only
#' supported for directories.
#' @param NextToken The pagination token. This is for future use. Currently pagination is
#' not supported for tagging.
#' @param MaxResults The `MaxResults` parameter sets the maximum number of results returned
#' in a single page. This is for future use and is not supported currently.
#'
#' @section Request syntax:
#' ```
#' svc$list_tags_for_resource(
#'   ResourceArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_tags_for_resource
clouddirectory_list_tags_for_resource <- function(ResourceArn, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListTagsForResource",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/tags",
    paginator = list()
  )
  input <- .clouddirectory$list_tags_for_resource_input(ResourceArn = ResourceArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_tags_for_resource_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_tags_for_resource <- clouddirectory_list_tags_for_resource

#' Returns a paginated list of all attribute definitions for a particular
#' TypedLinkFacet
#'
#' Returns a paginated list of all attribute definitions for a particular
#' TypedLinkFacet. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_list_typed_link_facet_attributes(SchemaArn, Name,
#'   NextToken, MaxResults)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param Name &#91;required&#93; The unique name of the typed link facet.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_typed_link_facet_attributes(
#'   SchemaArn = "string",
#'   Name = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_typed_link_facet_attributes
clouddirectory_list_typed_link_facet_attributes <- function(SchemaArn, Name, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListTypedLinkFacetAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
    paginator = list()
  )
  input <- .clouddirectory$list_typed_link_facet_attributes_input(SchemaArn = SchemaArn, Name = Name, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_typed_link_facet_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_typed_link_facet_attributes <- clouddirectory_list_typed_link_facet_attributes

#' Returns a paginated list of TypedLink facet names for a particular
#' schema
#'
#' Returns a paginated list of `TypedLink` facet names for a particular
#' schema. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_list_typed_link_facet_names(SchemaArn, NextToken,
#'   MaxResults)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param NextToken The pagination token.
#' @param MaxResults The maximum number of results to retrieve.
#'
#' @section Request syntax:
#' ```
#' svc$list_typed_link_facet_names(
#'   SchemaArn = "string",
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_list_typed_link_facet_names
clouddirectory_list_typed_link_facet_names <- function(SchemaArn, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "ListTypedLinkFacetNames",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
    paginator = list()
  )
  input <- .clouddirectory$list_typed_link_facet_names_input(SchemaArn = SchemaArn, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$list_typed_link_facet_names_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$list_typed_link_facet_names <- clouddirectory_list_typed_link_facet_names

#' Lists all policies from the root of the Directory to the object
#' specified
#'
#' Lists all policies from the root of the Directory to the object
#' specified. If there are no policies present, an empty list is returned.
#' If policies are present, and if some objects don\'t have the policies
#' attached, it returns the `ObjectIdentifier` for such objects. If
#' policies are present, it returns `ObjectIdentifier`, `policyId`, and
#' `policyType`. Paths that don\'t lead to the root from the target object
#' are ignored. For more information, see
#' [Policies](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
#'
#' @usage
#' clouddirectory_lookup_policy(DirectoryArn, ObjectReference, NextToken,
#'   MaxResults)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory.
#' For more information, see arns.
#' @param ObjectReference &#91;required&#93; Reference that identifies the object whose policies will be looked up.
#' @param NextToken The token to request the next page of results.
#' @param MaxResults The maximum number of items to be retrieved in a single call. This is an
#' approximate number.
#'
#' @section Request syntax:
#' ```
#' svc$lookup_policy(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   NextToken = "string",
#'   MaxResults = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_lookup_policy
clouddirectory_lookup_policy <- function(DirectoryArn, ObjectReference, NextToken = NULL, MaxResults = NULL) {
  op <- new_operation(
    name = "LookupPolicy",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/policy/lookup",
    paginator = list()
  )
  input <- .clouddirectory$lookup_policy_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, NextToken = NextToken, MaxResults = MaxResults)
  output <- .clouddirectory$lookup_policy_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$lookup_policy <- clouddirectory_lookup_policy

#' Publishes a development schema with a major version and a recommended
#' minor version
#'
#' Publishes a development schema with a major version and a recommended
#' minor version.
#'
#' @usage
#' clouddirectory_publish_schema(DevelopmentSchemaArn, Version,
#'   MinorVersion, Name)
#'
#' @param DevelopmentSchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the development
#' schema. For more information, see arns.
#' @param Version &#91;required&#93; The major version under which the schema will be published. Schemas have
#' both a major and minor version associated with them.
#' @param MinorVersion The minor version under which the schema will be published. This
#' parameter is recommended. Schemas have both a major and minor version
#' associated with them.
#' @param Name The new name under which the schema will be published. If this is not
#' provided, the development schema is considered.
#'
#' @section Request syntax:
#' ```
#' svc$publish_schema(
#'   DevelopmentSchemaArn = "string",
#'   Version = "string",
#'   MinorVersion = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_publish_schema
clouddirectory_publish_schema <- function(DevelopmentSchemaArn, Version, MinorVersion = NULL, Name = NULL) {
  op <- new_operation(
    name = "PublishSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/publish",
    paginator = list()
  )
  input <- .clouddirectory$publish_schema_input(DevelopmentSchemaArn = DevelopmentSchemaArn, Version = Version, MinorVersion = MinorVersion, Name = Name)
  output <- .clouddirectory$publish_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$publish_schema <- clouddirectory_publish_schema

#' Allows a schema to be updated using JSON upload
#'
#' Allows a schema to be updated using JSON upload. Only available for
#' development schemas. See [JSON Schema
#' Format](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
#' for more information.
#'
#' @usage
#' clouddirectory_put_schema_from_json(SchemaArn, Document)
#'
#' @param SchemaArn &#91;required&#93; The ARN of the schema to update.
#' @param Document &#91;required&#93; The replacement JSON schema.
#'
#' @section Request syntax:
#' ```
#' svc$put_schema_from_json(
#'   SchemaArn = "string",
#'   Document = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_put_schema_from_json
clouddirectory_put_schema_from_json <- function(SchemaArn, Document) {
  op <- new_operation(
    name = "PutSchemaFromJson",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/json",
    paginator = list()
  )
  input <- .clouddirectory$put_schema_from_json_input(SchemaArn = SchemaArn, Document = Document)
  output <- .clouddirectory$put_schema_from_json_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$put_schema_from_json <- clouddirectory_put_schema_from_json

#' Removes the specified facet from the specified object
#'
#' Removes the specified facet from the specified object.
#'
#' @usage
#' clouddirectory_remove_facet_from_object(DirectoryArn, SchemaFacet,
#'   ObjectReference)
#'
#' @param DirectoryArn &#91;required&#93; The ARN of the directory in which the object resides.
#' @param SchemaFacet &#91;required&#93; The facet to remove. See SchemaFacet for details.
#' @param ObjectReference &#91;required&#93; A reference to the object to remove the facet from.
#'
#' @section Request syntax:
#' ```
#' svc$remove_facet_from_object(
#'   DirectoryArn = "string",
#'   SchemaFacet = list(
#'     SchemaArn = "string",
#'     FacetName = "string"
#'   ),
#'   ObjectReference = list(
#'     Selector = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_remove_facet_from_object
clouddirectory_remove_facet_from_object <- function(DirectoryArn, SchemaFacet, ObjectReference) {
  op <- new_operation(
    name = "RemoveFacetFromObject",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/facets/delete",
    paginator = list()
  )
  input <- .clouddirectory$remove_facet_from_object_input(DirectoryArn = DirectoryArn, SchemaFacet = SchemaFacet, ObjectReference = ObjectReference)
  output <- .clouddirectory$remove_facet_from_object_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$remove_facet_from_object <- clouddirectory_remove_facet_from_object

#' An API operation for adding tags to a resource
#'
#' An API operation for adding tags to a resource.
#'
#' @usage
#' clouddirectory_tag_resource(ResourceArn, Tags)
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource. Tagging is only
#' supported for directories.
#' @param Tags &#91;required&#93; A list of tag key-value pairs.
#'
#' @section Request syntax:
#' ```
#' svc$tag_resource(
#'   ResourceArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_tag_resource
clouddirectory_tag_resource <- function(ResourceArn, Tags) {
  op <- new_operation(
    name = "TagResource",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/tags/add",
    paginator = list()
  )
  input <- .clouddirectory$tag_resource_input(ResourceArn = ResourceArn, Tags = Tags)
  output <- .clouddirectory$tag_resource_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$tag_resource <- clouddirectory_tag_resource

#' An API operation for removing tags from a resource
#'
#' An API operation for removing tags from a resource.
#'
#' @usage
#' clouddirectory_untag_resource(ResourceArn, TagKeys)
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource. Tagging is only
#' supported for directories.
#' @param TagKeys &#91;required&#93; Keys of the tag that need to be removed from the resource.
#'
#' @section Request syntax:
#' ```
#' svc$untag_resource(
#'   ResourceArn = "string",
#'   TagKeys = list(
#'     "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_untag_resource
clouddirectory_untag_resource <- function(ResourceArn, TagKeys) {
  op <- new_operation(
    name = "UntagResource",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/tags/remove",
    paginator = list()
  )
  input <- .clouddirectory$untag_resource_input(ResourceArn = ResourceArn, TagKeys = TagKeys)
  output <- .clouddirectory$untag_resource_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$untag_resource <- clouddirectory_untag_resource

#' Does the following: 1
#'
#' Does the following:
#' 
#' 1.  Adds new `Attributes`, `Rules`, or `ObjectTypes`.
#' 
#' 2.  Updates existing `Attributes`, `Rules`, or `ObjectTypes`.
#' 
#' 3.  Deletes existing `Attributes`, `Rules`, or `ObjectTypes`.
#'
#' @usage
#' clouddirectory_update_facet(SchemaArn, Name, AttributeUpdates,
#'   ObjectType)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Facet. For
#' more information, see arns.
#' @param Name &#91;required&#93; The name of the facet.
#' @param AttributeUpdates List of attributes that need to be updated in a given schema Facet. Each
#' attribute is followed by `AttributeAction`, which specifies the type of
#' update operation to perform.
#' @param ObjectType The object type that is associated with the facet. See
#' CreateFacetRequest\\$ObjectType for more details.
#'
#' @section Request syntax:
#' ```
#' svc$update_facet(
#'   SchemaArn = "string",
#'   Name = "string",
#'   AttributeUpdates = list(
#'     list(
#'       Attribute = list(
#'         Name = "string",
#'         AttributeDefinition = list(
#'           Type = "STRING"|"BINARY"|"BOOLEAN"|"NUMBER"|"DATETIME"|"VARIANT",
#'           DefaultValue = list(
#'             StringValue = "string",
#'             BinaryValue = raw,
#'             BooleanValue = TRUE|FALSE,
#'             NumberValue = "string",
#'             DatetimeValue = as.POSIXct(
#'               "2015-01-01"
#'             )
#'           ),
#'           IsImmutable = TRUE|FALSE,
#'           Rules = list(
#'             list(
#'               Type = "BINARY_LENGTH"|"NUMBER_COMPARISON"|"STRING_FROM_SET"|"STRING_LENGTH",
#'               Parameters = list(
#'                 "string"
#'               )
#'             )
#'           )
#'         ),
#'         AttributeReference = list(
#'           TargetFacetName = "string",
#'           TargetAttributeName = "string"
#'         ),
#'         RequiredBehavior = "REQUIRED_ALWAYS"|"NOT_REQUIRED"
#'       ),
#'       Action = "CREATE_OR_UPDATE"|"DELETE"
#'     )
#'   ),
#'   ObjectType = "NODE"|"LEAF_NODE"|"POLICY"|"INDEX"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_update_facet
clouddirectory_update_facet <- function(SchemaArn, Name, AttributeUpdates = NULL, ObjectType = NULL) {
  op <- new_operation(
    name = "UpdateFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/facet",
    paginator = list()
  )
  input <- .clouddirectory$update_facet_input(SchemaArn = SchemaArn, Name = Name, AttributeUpdates = AttributeUpdates, ObjectType = ObjectType)
  output <- .clouddirectory$update_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$update_facet <- clouddirectory_update_facet

#' Updates a given typed link’s attributes
#'
#' Updates a given typed link's attributes. Attributes to be updated must
#' not contribute to the typed link's identity, as defined by its
#' `IdentityAttributeOrder`.
#'
#' @usage
#' clouddirectory_update_link_attributes(DirectoryArn, TypedLinkSpecifier,
#'   AttributeUpdates)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the updated typed link resides. For more information, see arns or
#' [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#' @param TypedLinkSpecifier &#91;required&#93; Allows a typed link specifier to be accepted as input.
#' @param AttributeUpdates &#91;required&#93; The attributes update structure.
#'
#' @section Request syntax:
#' ```
#' svc$update_link_attributes(
#'   DirectoryArn = "string",
#'   TypedLinkSpecifier = list(
#'     TypedLinkFacet = list(
#'       SchemaArn = "string",
#'       TypedLinkName = "string"
#'     ),
#'     SourceObjectReference = list(
#'       Selector = "string"
#'     ),
#'     TargetObjectReference = list(
#'       Selector = "string"
#'     ),
#'     IdentityAttributeValues = list(
#'       list(
#'         AttributeName = "string",
#'         Value = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   AttributeUpdates = list(
#'     list(
#'       AttributeKey = list(
#'         SchemaArn = "string",
#'         FacetName = "string",
#'         Name = "string"
#'       ),
#'       AttributeAction = list(
#'         AttributeActionType = "CREATE_OR_UPDATE"|"DELETE",
#'         AttributeUpdateValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_update_link_attributes
clouddirectory_update_link_attributes <- function(DirectoryArn, TypedLinkSpecifier, AttributeUpdates) {
  op <- new_operation(
    name = "UpdateLinkAttributes",
    http_method = "POST",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/attributes/update",
    paginator = list()
  )
  input <- .clouddirectory$update_link_attributes_input(DirectoryArn = DirectoryArn, TypedLinkSpecifier = TypedLinkSpecifier, AttributeUpdates = AttributeUpdates)
  output <- .clouddirectory$update_link_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$update_link_attributes <- clouddirectory_update_link_attributes

#' Updates a given object's attributes
#'
#' Updates a given object\'s attributes.
#'
#' @usage
#' clouddirectory_update_object_attributes(DirectoryArn, ObjectReference,
#'   AttributeUpdates)
#'
#' @param DirectoryArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the Directory
#' where the object resides. For more information, see arns.
#' @param ObjectReference &#91;required&#93; The reference that identifies the object.
#' @param AttributeUpdates &#91;required&#93; The attributes update structure.
#'
#' @section Request syntax:
#' ```
#' svc$update_object_attributes(
#'   DirectoryArn = "string",
#'   ObjectReference = list(
#'     Selector = "string"
#'   ),
#'   AttributeUpdates = list(
#'     list(
#'       ObjectAttributeKey = list(
#'         SchemaArn = "string",
#'         FacetName = "string",
#'         Name = "string"
#'       ),
#'       ObjectAttributeAction = list(
#'         ObjectAttributeActionType = "CREATE_OR_UPDATE"|"DELETE",
#'         ObjectAttributeUpdateValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         )
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_update_object_attributes
clouddirectory_update_object_attributes <- function(DirectoryArn, ObjectReference, AttributeUpdates) {
  op <- new_operation(
    name = "UpdateObjectAttributes",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/object/update",
    paginator = list()
  )
  input <- .clouddirectory$update_object_attributes_input(DirectoryArn = DirectoryArn, ObjectReference = ObjectReference, AttributeUpdates = AttributeUpdates)
  output <- .clouddirectory$update_object_attributes_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$update_object_attributes <- clouddirectory_update_object_attributes

#' Updates the schema name with a new name
#'
#' Updates the schema name with a new name. Only development schema names
#' can be updated.
#'
#' @usage
#' clouddirectory_update_schema(SchemaArn, Name)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) of the development schema. For more
#' information, see arns.
#' @param Name &#91;required&#93; The name of the schema.
#'
#' @section Request syntax:
#' ```
#' svc$update_schema(
#'   SchemaArn = "string",
#'   Name = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_update_schema
clouddirectory_update_schema <- function(SchemaArn, Name) {
  op <- new_operation(
    name = "UpdateSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/update",
    paginator = list()
  )
  input <- .clouddirectory$update_schema_input(SchemaArn = SchemaArn, Name = Name)
  output <- .clouddirectory$update_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$update_schema <- clouddirectory_update_schema

#' Updates a TypedLinkFacet
#'
#' Updates a TypedLinkFacet. For more information, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @usage
#' clouddirectory_update_typed_link_facet(SchemaArn, Name,
#'   AttributeUpdates, IdentityAttributeOrder)
#'
#' @param SchemaArn &#91;required&#93; The Amazon Resource Name (ARN) that is associated with the schema. For
#' more information, see arns.
#' @param Name &#91;required&#93; The unique name of the typed link facet.
#' @param AttributeUpdates &#91;required&#93; Attributes update structure.
#' @param IdentityAttributeOrder &#91;required&#93; The order of identity attributes for the facet, from most significant to
#' least significant. The ability to filter typed links considers the order
#' that the attributes are defined on the typed link facet. When providing
#' ranges to a typed link selection, any inexact ranges must be specified
#' at the end. Any attributes that do not have a range specified are
#' presumed to match the entire range. Filters are interpreted in the order
#' of the attributes on the typed link facet, not the order in which they
#' are supplied to any API calls. For more information about identity
#' attributes, see [Typed
#' Links](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
#'
#' @section Request syntax:
#' ```
#' svc$update_typed_link_facet(
#'   SchemaArn = "string",
#'   Name = "string",
#'   AttributeUpdates = list(
#'     list(
#'       Attribute = list(
#'         Name = "string",
#'         Type = "STRING"|"BINARY"|"BOOLEAN"|"NUMBER"|"DATETIME"|"VARIANT",
#'         DefaultValue = list(
#'           StringValue = "string",
#'           BinaryValue = raw,
#'           BooleanValue = TRUE|FALSE,
#'           NumberValue = "string",
#'           DatetimeValue = as.POSIXct(
#'             "2015-01-01"
#'           )
#'         ),
#'         IsImmutable = TRUE|FALSE,
#'         Rules = list(
#'           list(
#'             Type = "BINARY_LENGTH"|"NUMBER_COMPARISON"|"STRING_FROM_SET"|"STRING_LENGTH",
#'             Parameters = list(
#'               "string"
#'             )
#'           )
#'         ),
#'         RequiredBehavior = "REQUIRED_ALWAYS"|"NOT_REQUIRED"
#'       ),
#'       Action = "CREATE_OR_UPDATE"|"DELETE"
#'     )
#'   ),
#'   IdentityAttributeOrder = list(
#'     "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_update_typed_link_facet
clouddirectory_update_typed_link_facet <- function(SchemaArn, Name, AttributeUpdates, IdentityAttributeOrder) {
  op <- new_operation(
    name = "UpdateTypedLinkFacet",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/typedlink/facet",
    paginator = list()
  )
  input <- .clouddirectory$update_typed_link_facet_input(SchemaArn = SchemaArn, Name = Name, AttributeUpdates = AttributeUpdates, IdentityAttributeOrder = IdentityAttributeOrder)
  output <- .clouddirectory$update_typed_link_facet_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$update_typed_link_facet <- clouddirectory_update_typed_link_facet

#' Upgrades a single directory in-place using the PublishedSchemaArn with
#' schema updates found in MinorVersion
#'
#' Upgrades a single directory in-place using the `PublishedSchemaArn` with
#' schema updates found in `MinorVersion`. Backwards-compatible minor
#' version upgrades are instantaneously available for readers on all
#' objects in the directory. Note: This is a synchronous API call and
#' upgrades only one schema on a given directory per call. To upgrade
#' multiple directories from one schema, you would need to call this API on
#' each directory.
#'
#' @usage
#' clouddirectory_upgrade_applied_schema(PublishedSchemaArn, DirectoryArn,
#'   DryRun)
#'
#' @param PublishedSchemaArn &#91;required&#93; The revision of the published schema to upgrade the directory to.
#' @param DirectoryArn &#91;required&#93; The ARN for the directory to which the upgraded schema will be applied.
#' @param DryRun Used for testing whether the major version schemas are backward
#' compatible or not. If schema compatibility fails, an exception would be
#' thrown else the call would succeed but no changes will be saved. This
#' parameter is optional.
#'
#' @section Request syntax:
#' ```
#' svc$upgrade_applied_schema(
#'   PublishedSchemaArn = "string",
#'   DirectoryArn = "string",
#'   DryRun = TRUE|FALSE
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_upgrade_applied_schema
clouddirectory_upgrade_applied_schema <- function(PublishedSchemaArn, DirectoryArn, DryRun = NULL) {
  op <- new_operation(
    name = "UpgradeAppliedSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
    paginator = list()
  )
  input <- .clouddirectory$upgrade_applied_schema_input(PublishedSchemaArn = PublishedSchemaArn, DirectoryArn = DirectoryArn, DryRun = DryRun)
  output <- .clouddirectory$upgrade_applied_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$upgrade_applied_schema <- clouddirectory_upgrade_applied_schema

#' Upgrades a published schema under a new minor version revision using the
#' current contents of DevelopmentSchemaArn
#'
#' Upgrades a published schema under a new minor version revision using the
#' current contents of `DevelopmentSchemaArn`.
#'
#' @usage
#' clouddirectory_upgrade_published_schema(DevelopmentSchemaArn,
#'   PublishedSchemaArn, MinorVersion, DryRun)
#'
#' @param DevelopmentSchemaArn &#91;required&#93; The ARN of the development schema with the changes used for the upgrade.
#' @param PublishedSchemaArn &#91;required&#93; The ARN of the published schema to be upgraded.
#' @param MinorVersion &#91;required&#93; Identifies the minor version of the published schema that will be
#' created. This parameter is NOT optional.
#' @param DryRun Used for testing whether the Development schema provided is backwards
#' compatible, or not, with the publish schema provided by the user to be
#' upgraded. If schema compatibility fails, an exception would be thrown
#' else the call would succeed. This parameter is optional and defaults to
#' false.
#'
#' @section Request syntax:
#' ```
#' svc$upgrade_published_schema(
#'   DevelopmentSchemaArn = "string",
#'   PublishedSchemaArn = "string",
#'   MinorVersion = "string",
#'   DryRun = TRUE|FALSE
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname clouddirectory_upgrade_published_schema
clouddirectory_upgrade_published_schema <- function(DevelopmentSchemaArn, PublishedSchemaArn, MinorVersion, DryRun = NULL) {
  op <- new_operation(
    name = "UpgradePublishedSchema",
    http_method = "PUT",
    http_path = "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
    paginator = list()
  )
  input <- .clouddirectory$upgrade_published_schema_input(DevelopmentSchemaArn = DevelopmentSchemaArn, PublishedSchemaArn = PublishedSchemaArn, MinorVersion = MinorVersion, DryRun = DryRun)
  output <- .clouddirectory$upgrade_published_schema_output()
  config <- get_config()
  svc <- .clouddirectory$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.clouddirectory$operations$upgrade_published_schema <- clouddirectory_upgrade_published_schema

Try the paws.security.identity package in your browser

Any scripts or data that you put into this service are public.

paws.security.identity documentation built on Oct. 30, 2019, 11:26 a.m.