lib/aws/generated/fraud_detector.ex

# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.

defmodule AWS.FraudDetector do
  @moduledoc """
  This is the Amazon Fraud Detector API Reference.

  This guide is for developers who need detailed information about Amazon Fraud
  Detector API actions, data types, and errors. For more information about Amazon
  Fraud Detector features, see the [Amazon Fraud Detector User Guide](https://docs.aws.amazon.com/frauddetector/latest/ug/).
  """

  alias AWS.Client
  alias AWS.Request

  def metadata do
    %AWS.ServiceMetadata{
      abbreviation: nil,
      api_version: "2019-11-15",
      content_type: "application/x-amz-json-1.1",
      credential_scope: nil,
      endpoint_prefix: "frauddetector",
      global?: false,
      protocol: "json",
      service_id: "FraudDetector",
      signature_version: "v4",
      signing_name: "frauddetector",
      target_prefix: "AWSHawksNestServiceFacade"
    }
  end

  @doc """
  Creates a batch of variables.
  """
  def batch_create_variable(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "BatchCreateVariable", input, options)
  end

  @doc """
  Gets a batch of variables.
  """
  def batch_get_variable(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "BatchGetVariable", input, options)
  end

  @doc """
  Cancels an in-progress batch import job.
  """
  def cancel_batch_import_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CancelBatchImportJob", input, options)
  end

  @doc """
  Cancels the specified batch prediction job.
  """
  def cancel_batch_prediction_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CancelBatchPredictionJob", input, options)
  end

  @doc """
  Creates a batch import job.
  """
  def create_batch_import_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateBatchImportJob", input, options)
  end

  @doc """
  Creates a batch prediction job.
  """
  def create_batch_prediction_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateBatchPredictionJob", input, options)
  end

  @doc """
  Creates a detector version.

  The detector version starts in a `DRAFT` status.
  """
  def create_detector_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateDetectorVersion", input, options)
  end

  @doc """
  Creates a model using the specified model type.
  """
  def create_model(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateModel", input, options)
  end

  @doc """
  Creates a version of the model using the specified model type and model id.
  """
  def create_model_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateModelVersion", input, options)
  end

  @doc """
  Creates a rule for use with the specified detector.
  """
  def create_rule(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateRule", input, options)
  end

  @doc """
  Creates a variable.
  """
  def create_variable(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "CreateVariable", input, options)
  end

  @doc """
  Deletes data that was batch imported to Amazon Fraud Detector.
  """
  def delete_batch_import_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteBatchImportJob", input, options)
  end

  @doc """
  Deletes a batch prediction job.
  """
  def delete_batch_prediction_job(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteBatchPredictionJob", input, options)
  end

  @doc """
  Deletes the detector.

  Before deleting a detector, you must first delete all detector versions and rule
  versions associated with the detector.

  When you delete a detector, Amazon Fraud Detector permanently deletes the
  detector and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_detector(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteDetector", input, options)
  end

  @doc """
  Deletes the detector version.

  You cannot delete detector versions that are in `ACTIVE` status.

  When you delete a detector version, Amazon Fraud Detector permanently deletes
  the detector and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_detector_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteDetectorVersion", input, options)
  end

  @doc """
  Deletes an entity type.

  You cannot delete an entity type that is included in an event type.

  When you delete an entity type, Amazon Fraud Detector permanently deletes that
  entity type and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_entity_type(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteEntityType", input, options)
  end

  @doc """
  Deletes the specified event.

  When you delete an event, Amazon Fraud Detector permanently deletes that event
  and the event data is no longer stored in Amazon Fraud Detector.
  """
  def delete_event(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteEvent", input, options)
  end

  @doc """
  Deletes an event type.

  You cannot delete an event type that is used in a detector or a model.

  When you delete an event type, Amazon Fraud Detector permanently deletes that
  event type and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_event_type(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteEventType", input, options)
  end

  @doc """
  Deletes all events of a particular event type.
  """
  def delete_events_by_event_type(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteEventsByEventType", input, options)
  end

  @doc """
  Removes a SageMaker model from Amazon Fraud Detector.

  You can remove an Amazon SageMaker model if it is not associated with a detector
  version. Removing a SageMaker model disconnects it from Amazon Fraud Detector,
  but the model remains available in SageMaker.
  """
  def delete_external_model(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteExternalModel", input, options)
  end

  @doc """
  Deletes a label.

  You cannot delete labels that are included in an event type in Amazon Fraud
  Detector.

  You cannot delete a label assigned to an event ID. You must first delete the
  relevant event ID.

  When you delete a label, Amazon Fraud Detector permanently deletes that label
  and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_label(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteLabel", input, options)
  end

  @doc """
  Deletes a model.

  You can delete models and model versions in Amazon Fraud Detector, provided that
  they are not associated with a detector version.

  When you delete a model, Amazon Fraud Detector permanently deletes that model
  and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_model(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteModel", input, options)
  end

  @doc """
  Deletes a model version.

  You can delete models and model versions in Amazon Fraud Detector, provided that
  they are not associated with a detector version.

  When you delete a model version, Amazon Fraud Detector permanently deletes that
  model version and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_model_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteModelVersion", input, options)
  end

  @doc """
  Deletes an outcome.

  You cannot delete an outcome that is used in a rule version.

  When you delete an outcome, Amazon Fraud Detector permanently deletes that
  outcome and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_outcome(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteOutcome", input, options)
  end

  @doc """
  Deletes the rule.

  You cannot delete a rule if it is used by an `ACTIVE` or `INACTIVE` detector
  version.

  When you delete a rule, Amazon Fraud Detector permanently deletes that rule and
  the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_rule(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteRule", input, options)
  end

  @doc """
  Deletes a variable.

  You can't delete variables that are included in an event type in Amazon Fraud
  Detector.

  Amazon Fraud Detector automatically deletes model output variables and SageMaker
  model output variables when you delete the model. You can't delete these
  variables manually.

  When you delete a variable, Amazon Fraud Detector permanently deletes that
  variable and the data is no longer stored in Amazon Fraud Detector.
  """
  def delete_variable(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DeleteVariable", input, options)
  end

  @doc """
  Gets all versions for a specified detector.
  """
  def describe_detector(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DescribeDetector", input, options)
  end

  @doc """
  Gets all of the model versions for the specified model type or for the specified
  model type and model ID.

  You can also get details for a single, specified model version.
  """
  def describe_model_versions(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "DescribeModelVersions", input, options)
  end

  @doc """
  Gets all batch import jobs or a specific job of the specified ID.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 50 records per page. If you provide a `maxResults`, the
  value must be between 1 and 50. To get the next page results, provide the
  pagination token from the `GetBatchImportJobsResponse` as part of your request.
  A null pagination token fetches the records from the beginning.
  """
  def get_batch_import_jobs(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetBatchImportJobs", input, options)
  end

  @doc """
  Gets all batch prediction jobs or a specific job if you specify a job ID.

  This is a paginated API. If you provide a null maxResults, this action retrieves
  a maximum of 50 records per page. If you provide a maxResults, the value must be
  between 1 and 50. To get the next page results, provide the pagination token
  from the GetBatchPredictionJobsResponse as part of your request. A null
  pagination token fetches the records from the beginning.
  """
  def get_batch_prediction_jobs(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetBatchPredictionJobs", input, options)
  end

  @doc """
  Retrieves the status of a `DeleteEventsByEventType` action.
  """
  def get_delete_events_by_event_type_status(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetDeleteEventsByEventTypeStatus", input, options)
  end

  @doc """
  Gets a particular detector version.
  """
  def get_detector_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetDetectorVersion", input, options)
  end

  @doc """
  Gets all detectors or a single detector if a `detectorId` is specified.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 10 records per page. If you provide a `maxResults`, the
  value must be between 5 and 10. To get the next page results, provide the
  pagination token from the `GetDetectorsResponse` as part of your request. A null
  pagination token fetches the records from the beginning.
  """
  def get_detectors(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetDetectors", input, options)
  end

  @doc """
  Gets all entity types or a specific entity type if a name is specified.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 10 records per page. If you provide a `maxResults`, the
  value must be between 5 and 10. To get the next page results, provide the
  pagination token from the `GetEntityTypesResponse` as part of your request. A
  null pagination token fetches the records from the beginning.
  """
  def get_entity_types(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetEntityTypes", input, options)
  end

  @doc """
  Retrieves details of events stored with Amazon Fraud Detector.

  This action does not retrieve prediction results.
  """
  def get_event(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetEvent", input, options)
  end

  @doc """
  Evaluates an event against a detector version.

  If a version ID is not provided, the detector’s (`ACTIVE`) version is used.
  """
  def get_event_prediction(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetEventPrediction", input, options)
  end

  @doc """
  Gets all event types or a specific event type if name is provided.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 10 records per page. If you provide a `maxResults`, the
  value must be between 5 and 10. To get the next page results, provide the
  pagination token from the `GetEventTypesResponse` as part of your request. A
  null pagination token fetches the records from the beginning.
  """
  def get_event_types(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetEventTypes", input, options)
  end

  @doc """
  Gets the details for one or more Amazon SageMaker models that have been imported
  into the service.

  This is a paginated API. If you provide a null `maxResults`, this actions
  retrieves a maximum of 10 records per page. If you provide a `maxResults`, the
  value must be between 5 and 10. To get the next page results, provide the
  pagination token from the `GetExternalModelsResult` as part of your request. A
  null pagination token fetches the records from the beginning.
  """
  def get_external_models(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetExternalModels", input, options)
  end

  @doc """
  Gets the encryption key if a KMS key has been specified to be used to encrypt
  content in Amazon Fraud Detector.
  """
  def get_kms_encryption_key(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetKMSEncryptionKey", input, options)
  end

  @doc """
  Gets all labels or a specific label if name is provided.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 50 records per page. If you provide a `maxResults`, the
  value must be between 10 and 50. To get the next page results, provide the
  pagination token from the `GetGetLabelsResponse` as part of your request. A null
  pagination token fetches the records from the beginning.
  """
  def get_labels(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetLabels", input, options)
  end

  @doc """
  Gets the details of the specified model version.
  """
  def get_model_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetModelVersion", input, options)
  end

  @doc """
  Gets one or more models.

  Gets all models for the Amazon Web Services account if no model type and no
  model id provided. Gets all models for the Amazon Web Services account and model
  type, if the model type is specified but model id is not provided. Gets a
  specific model if (model type, model id) tuple is specified.

  This is a paginated API. If you provide a null `maxResults`, this action
  retrieves a maximum of 10 records per page. If you provide a `maxResults`, the
  value must be between 1 and 10. To get the next page results, provide the
  pagination token from the response as part of your request. A null pagination
  token fetches the records from the beginning.
  """
  def get_models(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetModels", input, options)
  end

  @doc """
  Gets one or more outcomes.

  This is a paginated API. If you provide a null `maxResults`, this actions
  retrieves a maximum of 100 records per page. If you provide a `maxResults`, the
  value must be between 50 and 100. To get the next page results, provide the
  pagination token from the `GetOutcomesResult` as part of your request. A null
  pagination token fetches the records from the beginning.
  """
  def get_outcomes(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetOutcomes", input, options)
  end

  @doc """
  Get all rules for a detector (paginated) if `ruleId` and `ruleVersion` are not
  specified.

  Gets all rules for the detector and the `ruleId` if present (paginated). Gets a
  specific rule if both the `ruleId` and the `ruleVersion` are specified.

  This is a paginated API. Providing null maxResults results in retrieving maximum
  of 100 records per page. If you provide maxResults the value must be between 50
  and 100. To get the next page result, a provide a pagination token from
  GetRulesResult as part of your request. Null pagination token fetches the
  records from the beginning.
  """
  def get_rules(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetRules", input, options)
  end

  @doc """
  Gets all of the variables or the specific variable.

  This is a paginated API. Providing null `maxSizePerPage` results in retrieving
  maximum of 100 records per page. If you provide `maxSizePerPage` the value must
  be between 50 and 100. To get the next page result, a provide a pagination token
  from `GetVariablesResult` as part of your request. Null pagination token fetches
  the records from the beginning.
  """
  def get_variables(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "GetVariables", input, options)
  end

  @doc """
  Lists all tags associated with the resource.

  This is a paginated API. To get the next page results, provide the pagination
  token from the response as part of your request. A null pagination token fetches
  the records from the beginning.
  """
  def list_tags_for_resource(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "ListTagsForResource", input, options)
  end

  @doc """
  Creates or updates a detector.
  """
  def put_detector(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutDetector", input, options)
  end

  @doc """
  Creates or updates an entity type.

  An entity represents who is performing the event. As part of a fraud prediction,
  you pass the entity ID to indicate the specific entity who performed the event.
  An entity type classifies the entity. Example classifications include customer,
  merchant, or account.
  """
  def put_entity_type(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutEntityType", input, options)
  end

  @doc """
  Creates or updates an event type.

  An event is a business activity that is evaluated for fraud risk. With Amazon
  Fraud Detector, you generate fraud predictions for events. An event type defines
  the structure for an event sent to Amazon Fraud Detector. This includes the
  variables sent as part of the event, the entity performing the event (such as a
  customer), and the labels that classify the event. Example event types include
  online payment transactions, account registrations, and authentications.
  """
  def put_event_type(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutEventType", input, options)
  end

  @doc """
  Creates or updates an Amazon SageMaker model endpoint.

  You can also use this action to update the configuration of the model endpoint,
  including the IAM role and/or the mapped variables.
  """
  def put_external_model(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutExternalModel", input, options)
  end

  @doc """
  Specifies the KMS key to be used to encrypt content in Amazon Fraud Detector.
  """
  def put_kms_encryption_key(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutKMSEncryptionKey", input, options)
  end

  @doc """
  Creates or updates label.

  A label classifies an event as fraudulent or legitimate. Labels are associated
  with event types and used to train supervised machine learning models in Amazon
  Fraud Detector.
  """
  def put_label(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutLabel", input, options)
  end

  @doc """
  Creates or updates an outcome.
  """
  def put_outcome(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "PutOutcome", input, options)
  end

  @doc """
  Stores events in Amazon Fraud Detector without generating fraud predictions for
  those events.

  For example, you can use `SendEvent` to upload a historical dataset, which you
  can then later use to train a model.
  """
  def send_event(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "SendEvent", input, options)
  end

  @doc """
  Assigns tags to a resource.
  """
  def tag_resource(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "TagResource", input, options)
  end

  @doc """
  Removes tags from a resource.
  """
  def untag_resource(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UntagResource", input, options)
  end

  @doc """
  Updates a detector version.

  The detector version attributes that you can update include models, external
  model endpoints, rules, rule execution mode, and description. You can only
  update a `DRAFT` detector version.
  """
  def update_detector_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateDetectorVersion", input, options)
  end

  @doc """
  Updates the detector version's description.

  You can update the metadata for any detector version (`DRAFT, ACTIVE,` or
  `INACTIVE`).
  """
  def update_detector_version_metadata(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateDetectorVersionMetadata", input, options)
  end

  @doc """
  Updates the detector version’s status.

  You can perform the following promotions or demotions using
  `UpdateDetectorVersionStatus`: `DRAFT` to `ACTIVE`, `ACTIVE` to `INACTIVE`, and
  `INACTIVE` to `ACTIVE`.
  """
  def update_detector_version_status(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateDetectorVersionStatus", input, options)
  end

  @doc """
  Updates the specified event with a new label.
  """
  def update_event_label(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateEventLabel", input, options)
  end

  @doc """
  Updates model description.
  """
  def update_model(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateModel", input, options)
  end

  @doc """
  Updates a model version.

  Updating a model version retrains an existing model version using updated
  training data and produces a new minor version of the model. You can update the
  training data set location and data access role attributes using this action.
  This action creates and trains a new minor version of the model, for example
  version 1.01, 1.02, 1.03.
  """
  def update_model_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateModelVersion", input, options)
  end

  @doc """
  Updates the status of a model version.

  You can perform the following status updates:

    1. Change the `TRAINING_COMPLETE` status to `ACTIVE`.

    2. Change `ACTIVE` to `INACTIVE`.
  """
  def update_model_version_status(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateModelVersionStatus", input, options)
  end

  @doc """
  Updates a rule's metadata.

  The description attribute can be updated.
  """
  def update_rule_metadata(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateRuleMetadata", input, options)
  end

  @doc """
  Updates a rule version resulting in a new rule version.

  Updates a rule version resulting in a new rule version (version 1, 2, 3 ...).
  """
  def update_rule_version(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateRuleVersion", input, options)
  end

  @doc """
  Updates a variable.
  """
  def update_variable(%Client{} = client, input, options \\ []) do
    Request.request_post(client, metadata(), "UpdateVariable", input, options)
  end
end