# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: iot_events
using AWS.Compat
using AWS.UUIDs

"""
    create_detector_model(detector_model_definition, detector_model_name, role_arn)
    create_detector_model(detector_model_definition, detector_model_name, role_arn, params::Dict{String,<:Any})

Creates a detector model.

# Arguments
- `detector_model_definition`: Information that defines how the detectors operate.
- `detector_model_name`: The name of the detector model.
- `role_arn`: The ARN of the role that grants permission to AWS IoT Events to perform its
  operations.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"detectorModelDescription"`: A brief description of the detector model.
- `"evaluationMethod"`: Information about the order in which events are evaluated and how
  actions are executed.
- `"key"`: The input attribute key used to identify a device or system to create a detector
  (an instance of the detector model) and then to route each input received to the
  appropriate detector (instance). This parameter uses a JSON-path expression in the message
  payload of each input to specify the attribute-value pair that is used to identify the
  device associated with the input.
- `"tags"`: Metadata that can be used to manage the detector model.
"""
create_detector_model(detectorModelDefinition, detectorModelName, roleArn; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/detector-models", Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition, "detectorModelName"=>detectorModelName, "roleArn"=>roleArn); aws_config=aws_config)
create_detector_model(detectorModelDefinition, detectorModelName, roleArn, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/detector-models", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition, "detectorModelName"=>detectorModelName, "roleArn"=>roleArn), params)); aws_config=aws_config)

"""
    create_input(input_definition, input_name)
    create_input(input_definition, input_name, params::Dict{String,<:Any})

Creates an input.

# Arguments
- `input_definition`: The definition of the input.
- `input_name`: The name you want to give to the input.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"inputDescription"`: A brief description of the input.
- `"tags"`: Metadata that can be used to manage the input.
"""
create_input(inputDefinition, inputName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/inputs", Dict{String, Any}("inputDefinition"=>inputDefinition, "inputName"=>inputName); aws_config=aws_config)
create_input(inputDefinition, inputName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/inputs", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("inputDefinition"=>inputDefinition, "inputName"=>inputName), params)); aws_config=aws_config)

"""
    delete_detector_model(detector_model_name)
    delete_detector_model(detector_model_name, params::Dict{String,<:Any})

Deletes a detector model. Any active instances of the detector model are also deleted.

# Arguments
- `detector_model_name`: The name of the detector model to be deleted.

"""
delete_detector_model(detectorModelName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/detector-models/$(detectorModelName)"; aws_config=aws_config)
delete_detector_model(detectorModelName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/detector-models/$(detectorModelName)", params; aws_config=aws_config)

"""
    delete_input(input_name)
    delete_input(input_name, params::Dict{String,<:Any})

Deletes an input.

# Arguments
- `input_name`: The name of the input to delete.

"""
delete_input(inputName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/inputs/$(inputName)"; aws_config=aws_config)
delete_input(inputName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/inputs/$(inputName)", params; aws_config=aws_config)

"""
    describe_detector_model(detector_model_name)
    describe_detector_model(detector_model_name, params::Dict{String,<:Any})

Describes a detector model. If the version parameter is not specified, information about
the latest version is returned.

# Arguments
- `detector_model_name`: The name of the detector model.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"version"`: The version of the detector model.
"""
describe_detector_model(detectorModelName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models/$(detectorModelName)"; aws_config=aws_config)
describe_detector_model(detectorModelName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models/$(detectorModelName)", params; aws_config=aws_config)

"""
    describe_detector_model_analysis(analysis_id)
    describe_detector_model_analysis(analysis_id, params::Dict{String,<:Any})

Retrieves execution information about a detector model analysis

# Arguments
- `analysis_id`: The ID of the analysis result that you want to retrieve.

"""
describe_detector_model_analysis(analysisId; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/analysis/detector-models/$(analysisId)"; aws_config=aws_config)
describe_detector_model_analysis(analysisId, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/analysis/detector-models/$(analysisId)", params; aws_config=aws_config)

"""
    describe_input(input_name)
    describe_input(input_name, params::Dict{String,<:Any})

Describes an input.

# Arguments
- `input_name`: The name of the input.

"""
describe_input(inputName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/inputs/$(inputName)"; aws_config=aws_config)
describe_input(inputName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/inputs/$(inputName)", params; aws_config=aws_config)

"""
    describe_logging_options()
    describe_logging_options(params::Dict{String,<:Any})

Retrieves the current settings of the AWS IoT Events logging options.

"""
describe_logging_options(; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/logging"; aws_config=aws_config)
describe_logging_options(params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/logging", params; aws_config=aws_config)

"""
    get_detector_model_analysis_results(analysis_id)
    get_detector_model_analysis_results(analysis_id, params::Dict{String,<:Any})

Retrieves one or more analysis results of the detector model.

# Arguments
- `analysis_id`: The ID of the analysis result that you want to retrieve.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: The maximum number of results to be returned per request.
- `"nextToken"`: The token that you can use to return the next set of results.
"""
get_detector_model_analysis_results(analysisId; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/analysis/detector-models/$(analysisId)/results"; aws_config=aws_config)
get_detector_model_analysis_results(analysisId, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/analysis/detector-models/$(analysisId)/results", params; aws_config=aws_config)

"""
    list_detector_model_versions(detector_model_name)
    list_detector_model_versions(detector_model_name, params::Dict{String,<:Any})

Lists all the versions of a detector model. Only the metadata associated with each detector
model version is returned.

# Arguments
- `detector_model_name`: The name of the detector model whose versions are returned.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: The maximum number of results to be returned per request.
- `"nextToken"`: The token that you can use to return the next set of results.
"""
list_detector_model_versions(detectorModelName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models/$(detectorModelName)/versions"; aws_config=aws_config)
list_detector_model_versions(detectorModelName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models/$(detectorModelName)/versions", params; aws_config=aws_config)

"""
    list_detector_models()
    list_detector_models(params::Dict{String,<:Any})

Lists the detector models you have created. Only the metadata associated with each detector
model is returned.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: The maximum number of results to be returned per request.
- `"nextToken"`: The token that you can use to return the next set of results.
"""
list_detector_models(; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models"; aws_config=aws_config)
list_detector_models(params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/detector-models", params; aws_config=aws_config)

"""
    list_inputs()
    list_inputs(params::Dict{String,<:Any})

Lists the inputs you have created.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: The maximum number of results to be returned per request.
- `"nextToken"`: The token that you can use to return the next set of results.
"""
list_inputs(; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/inputs"; aws_config=aws_config)
list_inputs(params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/inputs", params; aws_config=aws_config)

"""
    list_tags_for_resource(resource_arn)
    list_tags_for_resource(resource_arn, params::Dict{String,<:Any})

Lists the tags (metadata) you have assigned to the resource.

# Arguments
- `resource_arn`: The ARN of the resource.

"""
list_tags_for_resource(resourceArn; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/tags", Dict{String, Any}("resourceArn"=>resourceArn); aws_config=aws_config)
list_tags_for_resource(resourceArn, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("GET", "/tags", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn), params)); aws_config=aws_config)

"""
    put_logging_options(logging_options)
    put_logging_options(logging_options, params::Dict{String,<:Any})

Sets or updates the AWS IoT Events logging options. If you update the value of any
loggingOptions field, it takes up to one minute for the change to take effect. If you
change the policy attached to the role you specified in the roleArn field (for example, to
correct an invalid policy), it takes up to five minutes for that change to take effect.

# Arguments
- `logging_options`: The new values of the AWS IoT Events logging options.

"""
put_logging_options(loggingOptions; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("PUT", "/logging", Dict{String, Any}("loggingOptions"=>loggingOptions); aws_config=aws_config)
put_logging_options(loggingOptions, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("PUT", "/logging", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("loggingOptions"=>loggingOptions), params)); aws_config=aws_config)

"""
    start_detector_model_analysis(detector_model_definition)
    start_detector_model_analysis(detector_model_definition, params::Dict{String,<:Any})

Performs an analysis of your detector model. For more information, see Running detector
model analyses in the AWS IoT Events Developer Guide.

# Arguments
- `detector_model_definition`:

"""
start_detector_model_analysis(detectorModelDefinition; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/analysis/detector-models/", Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition); aws_config=aws_config)
start_detector_model_analysis(detectorModelDefinition, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/analysis/detector-models/", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition), params)); aws_config=aws_config)

"""
    tag_resource(resource_arn, tags)
    tag_resource(resource_arn, tags, params::Dict{String,<:Any})

Adds to or modifies the tags of the given resource. Tags are metadata that can be used to
manage a resource.

# Arguments
- `resource_arn`: The ARN of the resource.
- `tags`: The new or modified tags for the resource.

"""
tag_resource(resourceArn, tags; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/tags", Dict{String, Any}("resourceArn"=>resourceArn, "tags"=>tags); aws_config=aws_config)
tag_resource(resourceArn, tags, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/tags", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn, "tags"=>tags), params)); aws_config=aws_config)

"""
    untag_resource(resource_arn, tag_keys)
    untag_resource(resource_arn, tag_keys, params::Dict{String,<:Any})

Removes the given tags (metadata) from the resource.

# Arguments
- `resource_arn`: The ARN of the resource.
- `tag_keys`: A list of the keys of the tags to be removed from the resource.

"""
untag_resource(resourceArn, tagKeys; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/tags", Dict{String, Any}("resourceArn"=>resourceArn, "tagKeys"=>tagKeys); aws_config=aws_config)
untag_resource(resourceArn, tagKeys, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("DELETE", "/tags", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn, "tagKeys"=>tagKeys), params)); aws_config=aws_config)

"""
    update_detector_model(detector_model_definition, detector_model_name, role_arn)
    update_detector_model(detector_model_definition, detector_model_name, role_arn, params::Dict{String,<:Any})

Updates a detector model. Detectors (instances) spawned by the previous version are deleted
and then re-created as new inputs arrive.

# Arguments
- `detector_model_definition`: Information that defines how a detector operates.
- `detector_model_name`: The name of the detector model that is updated.
- `role_arn`: The ARN of the role that grants permission to AWS IoT Events to perform its
  operations.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"detectorModelDescription"`: A brief description of the detector model.
- `"evaluationMethod"`: Information about the order in which events are evaluated and how
  actions are executed.
"""
update_detector_model(detectorModelDefinition, detectorModelName, roleArn; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/detector-models/$(detectorModelName)", Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition, "roleArn"=>roleArn); aws_config=aws_config)
update_detector_model(detectorModelDefinition, detectorModelName, roleArn, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("POST", "/detector-models/$(detectorModelName)", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("detectorModelDefinition"=>detectorModelDefinition, "roleArn"=>roleArn), params)); aws_config=aws_config)

"""
    update_input(input_definition, input_name)
    update_input(input_definition, input_name, params::Dict{String,<:Any})

Updates an input.

# Arguments
- `input_definition`: The definition of the input.
- `input_name`: The name of the input you want to update.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"inputDescription"`: A brief description of the input.
"""
update_input(inputDefinition, inputName; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("PUT", "/inputs/$(inputName)", Dict{String, Any}("inputDefinition"=>inputDefinition); aws_config=aws_config)
update_input(inputDefinition, inputName, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = iot_events("PUT", "/inputs/$(inputName)", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("inputDefinition"=>inputDefinition), params)); aws_config=aws_config)
