RPA.Cloud.AWS

Analyzes an input document for relationships between detected items

Arguments

ArgumentTypeDefault value
image_filestr, NoneNone
json_filestr, NoneNone
bucket_namestr, NoneNone
modelboolFalse
param image_file:filepath (or object name) of image file
param json_file:filepath to resulting json file
param bucket_name:if given then using image_file from the bucket
param model:set True to return Textract Document model, default False
return:analysis response in json or TextractDocument model

Usage

${response} Analyze Document ${filename} model=True FOR ${page} IN @{response.pages} Log Many ${page.tables} Log Many ${page.form} Log Lines ${page.lines} Log Many ${page} Log ${page} Log ${page.form} END

Returns a set of temporary security credentials that you can use to access Amazon Web Services resources that you might not normally have access to. These temporary credentials consist of an access key ID, a secret access key, and a security token. Typically, you use Assume Role within your account or for cross-account access.

Arguments

ArgumentTypeDefault value
role_arnstrnull
role_session_namestrnull
policy_arnsList[Dict], NoneNone
policystr, NoneNone
durationint900
tagsList[Dict], NoneNone
transitive_tag_keysList[str], NoneNone
external_idstr, NoneNone
serial_numberstr, NoneNone
token_codestr, NoneNone
source_identitystr, NoneNone

The credentials are returned as a dictionary with data structure similar to the following JSON:

{ "Credentials": { "AccessKeyId": "string", "SecretAccessKey": "string", "SessionToken": "string", "Expiration": "2015-01-01" }, "AssumedRoleUser": { "AssumedRoleId": "string", "Arn": "string" }, "PackedPolicySize": 123, "SourceIdentity": "string" }

These credentials can be used to re-initialize services available in this library with the assumed role instead of the original role.

NOTE: For detailed information on the available arguments to this keyword, please see the Boto3 STS documentation.

param role_arn:The Amazon Resource Name (ARN) of the role to assume.
param role_session_name:An identifier for the assumed role session.
param policy_arns:The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.
param policy:An IAM policy in JSON format that you want to use as an inline session policy.
param duration:The duration, in seconds, of the role session. The value specified can range from 900 seconds (15 minutes and the default) up to the maximum session duration set for the role.
param tags:A list of session tags that you want to pass. Each session tag consists of a key name and an associated value.
param transitive_tag_keys:A list of keys for session tags that you want to set as transitive. If you set a tag key as transitive, the corresponding key and value passes to subsequent sessions in a role chain.
param external_id:A unique identifier that might be required when you assume a role in another account. If the administrator of the account to which the role belongs provided you with an external ID, then provide that value in this parameter.
param serial_number:The identification number of the MFA device that is associated with the user who is making the using the assume_role keyword.
param token_code:The value provided by the MFA device, if the trust policy of the role being assumed requires MFA.
param source_identity:The source identity specified by the principal that is using the assume_role keyword.

Convert AWS Textract JSON response into TextractDocument object, which has following structure:

Arguments

ArgumentTypeDefault value
responsenull
  • Document
  • Page
  • Tables
  • Rows
  • Cells
  • Lines
  • Words
  • Form
  • Field
param response:JSON response from AWS Textract service
return:TextractDocument object

Usage

${response} Analyze Document ${filename} ${model}= Convert Textract Response To Model ${response} FOR ${page} IN @{model.pages} Log Many ${page.tables} Log Many ${page.form} Log Lines ${page.lines} Log Many ${page} Log ${page} Log ${page.form} END

Create S3 bucket with name

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
kwargsnull

note This keyword accepts additional parameters in key=value format

More info on additional parameters.

param bucket_name:name for the bucket
return:boolean indicating status of operation

Robot Framework example:

Create Bucket public-bucket ACL=public-read-write

Create queue with name

Arguments

ArgumentTypeDefault value
queue_namestr, NoneNone
param queue_name:[description], defaults to None
return:create queue response as dict

Returns a formatted dictionary to be used in Redshift Data Api SQL statements.

Arguments

ArgumentTypeDefault value
paramsnull

Example:

Assume the ${SQL} statement has the parameters :id and :name:

*** Tasks *** ${params}= Create sql parameters id=123 name=Nokia # params produces a data structure like so: # Which can be used for the 'parameters' argument. ${response}= Execute redshift statement ${SQL} ${params}

Delete S3 bucket with name

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
param bucket_name:name for the bucket
return:boolean indicating status of operation

Delete files in the bucket

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
fileslist, NoneNone
kwargsnull

note This keyword accepts additional parameters in key=value format

More info on additional parameters.

param bucket_name:name for the bucket
param files:list of files to delete
return:number of files deleted or False

Delete message in the queue

Arguments

ArgumentTypeDefault value
receipt_handlestr, NoneNone
param receipt_handle:message handle to delete
return:delete message response as dict

Delete queue with name

Arguments

ArgumentTypeDefault value
queue_namestr, NoneNone
param queue_name:[description], defaults to None
return:delete queue response as dict

Describes the detailed information about a table from metadata in the cluster. The information includes its columns.

Arguments

ArgumentTypeDefault value
databasestrnull
schemastr, NoneNone
tablestr, NoneNone

If schema and/or table is not provided, the API searches all schemas for the provided table, or returns all tables in the schema or entire database.

The response object is provided as a list of table meta data objects, utilize dot-notation or the RPA.JSON library to access members:

{ "ColumnList": [ { "columnDefault": "string", "isCaseSensitive": true, "isCurrency": false, "isSigned": false, "label": "string", "length": 123, "name": "string", "nullable": 123, "precision": 123, "scale": 123, "schemaName": "string", "tableName": "string", "typeName": "string" }, ], "TableName": "string" }
param database:The name of the database that contains the tables to be described. If ommitted, will use the connected Database.
param schema:The schema that contains the table. If no schema is specified, then matching tables for all schemas are returned.
param table:The table name. If no table is specified, then all tables for all matching schemas are returned. If no table and no schema is specified, then all tables for all schemas in the database are returned

Detects text in the input document.

Arguments

ArgumentTypeDefault value
image_filestr, NoneNone
json_filestr, NoneNone
bucket_namestr, NoneNone
param image_file:filepath (or object name) of image file
param json_file:filepath to resulting json file
param bucket_name:if given then using image_file from the bucket
return:analysis response in json

Inspects text for named entities, and returns information about them

Arguments

ArgumentTypeDefault value
textstr, NoneNone
langen
param text:A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters
param lang:language code of the text, defaults to "en"

Inspects text and returns an inference of the prevailing sentiment

Arguments

ArgumentTypeDefault value
textstr, NoneNone
langen
param text:A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters
param lang:language code of the text, defaults to "en"

Download files from bucket to local filesystem

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
fileslist, NoneNone
target_directorystr, NoneNone
kwargsnull

note This keyword accepts additional parameters in key=value format.

More info on additional parameters.

param bucket_name:name for the bucket
param files:list of S3 object names
param target_directory:location for the downloaded files, default current directory
return:number of files downloaded

Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement.

Arguments

ArgumentTypeDefault value
sqlstrnull
parameterslist, NoneNone
statement_namestr, NoneNone
with_eventboolFalse
timeoutint40

SQL statements can be parameterized with named parameters through the use of the parameters argument. Parameters must be dictionaries with the following two keys:

  • name: The name of the parameter. In the SQL statement this will be referenced as :name.
  • value: The value of the parameter. Amazon Redshift implicitly converts to the proper data type. For more information, see Data types in the Amazon Redshift Database Developer Guide.

For simplicity, a helper keyword, Create redshift statement parameters, is available and can be used more naturally in Robot Framework contexts.

If tabular data is returned, this keyword tries to return it as a table (see RPA.Tables), if RPA.Tables is not available in the keyword's scope, the data will be returned as a list of dictionaries. Other types of data (SQL errors and result statements) are returned as strings.

NOTE: You may modify the max built-in wait time by providing a timeout in seconds (default 40 seconds)

Robot framework example:

*** Tasks *** ${SQL}= Set variable insert into mytable values (:id, :address) ${params}= Create redshift statement parameters ... id=1 ... address=Seattle ${response}= Execute redshift statement ${SQL} ${params} Log ${response}

Python example:

sql = "insert into mytable values (:id, :address)" parameters = [ {"name": "id", "value": "1"}, {"name": "address", "value": "Seattle"}, ] response = aws.execute_redshift_statement(sql, parameters) print(response)
param parameters:The parameters for the SQL statement. Must consist of a list of dictionaries with two keys: name and value.
param sql:The SQL statement text to run.
param statement_name:The name of the SQL statement. You can name the SQL statement when you create it to identify the query.
param with_event:A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs.
param timeout:Used to calculate the maximum wait. Exact timing depends on system variability becuase the underlying waiter does not utilize a timeout directly.

Submit a sql statement for Redshift to execute asyncronously. Returns the statement ID which can be used to retrieve statement results later.

Arguments

ArgumentTypeDefault value
sqlstrnull
parameterslist, NoneNone
statement_namestr, NoneNone
with_eventboolFalse
param parameters:The parameters for the SQL statement. Must consist of a list of dictionaries with two keys: name and value.
param sql:The SQL statement text to run.
param statement_name:The name of the SQL statement. You can name the SQL statement when you create it to identify the query.
param with_event:A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs.

Generate presigned URL for the file.

Arguments

ArgumentTypeDefault value
bucket_namestrnull
object_namestrnull
expires_inint, NoneNone
extra_paramsnull
param bucket_name:name for the bucket
param object_name:name of the file in the bucket
param expires_in:optional expiration time for the url (in seconds). The default expiration time is 3600 seconds (one hour).
param extra_params:allows setting any extra Params
return:URL for accessing the file

Get parsed cells from the response

return:cells

Get the results of Textract asynchronous Document Analysis operation

Arguments

ArgumentTypeDefault value
job_idstr, NoneNone
max_resultsint1000
next_tokenstr, NoneNone
collect_all_resultsboolFalse
param job_id:job identifier, defaults to None
param max_results:number of blocks to get at a time, defaults to 1000
param next_token:pagination token for getting next set of results, defaults to None
param collect_all_results:when set to True will wait until analysis is complete and returns all blocks of the analysis result, by default (False) the all blocks need to be specifically collected using next_token variable
return:dictionary

Response dictionary has key JobStatus with value SUCCEEDED when analysis has been completed.

Usage

Init Textract Client %{AWS_KEY_ID} %{AWS_KEY_SECRET} %{AWS_REGION} ${jobid}= Start Document Analysis s3bucket_name invoice.pdf # Wait for job completion and collect all blocks ${response}= Get Document Analysis ${jobid} collect_all_results=True # Model will contain all pages of the invoice.pdf ${model}= Convert Textract Response To Model ${response}

Get the results of Textract asynchronous Document Text Detection operation

Arguments

ArgumentTypeDefault value
job_idstr, NoneNone
max_resultsint1000
next_tokenstr, NoneNone
collect_all_resultsboolFalse
param job_id:job identifier, defaults to None
param max_results:number of blocks to get at a time, defaults to 1000
param next_token:pagination token for getting next set of results, defaults to None
param collect_all_results:when set to True will wait until analysis is complete and returns all blocks of the analysis result, by default (False) the all blocks need to be specifically collected using next_token variable
return:dictionary

Response dictionary has key JobStatus with value SUCCEEDED when analysis has been completed.

Usage

Init Textract Client %{AWS_KEY_ID} %{AWS_KEY_SECRET} %{AWS_REGION} ${jobid}= Start Document Text Detection s3bucket_name invoice.pdf # Wait for job completion and collect all blocks ${response}= Get Document Text Detection ${jobid} collect_all_results=True # Model will contain all pages of the invoice.pdf ${model}= Convert Textract Response To Model ${response}

Get pages and text out of Textract response json

Arguments

ArgumentTypeDefault value
textract_responsedictnull
param textract_response:JSON from Textract
return:dictionary, page numbers as keys and value is a list of text lines

Retrieve the results of a SQL statement previously submitted to Redshift. If that statement has not yet completed, this keyword will wait for results. See Execute Redshift Statement for additional information.

Arguments

ArgumentTypeDefault value
statement_idstrnull
timeoutint40

If the statement has tabular results, this keyword returns them as a table from RPA.Tables if that library is available, or as a list of dictionaries if not. If the statement does not have tabular results, it will return the number of rows affected.

param statement_id:The statement id to use to retreive results.
param timeout:An integer used to calculate the maximum wait. Exact timing depends on system variability becuase the underlying waiter does not utilize a timeout directly. Defaults to 40.

Get parsed tables from the response

Returns RPA.Tables.Table if possible otherwise returns an dictionary.

return:tables

Get parsed words from the response

return:words

Initialize AWS Comprehend client

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param use_robocorp_vault:use secret stored in Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

Initialize AWS Redshift Data API client

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
cluster_identifierstr, NoneNone
databasestr, NoneNone
database_userstr, NoneNone
secret_arnstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param cluster_identifier:The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.
param database:The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.
param database_user:The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.
param secret_arn:The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using Secrets Manager.
param use_robocorp_vault:use secret stored in Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

Initialize AWS S3 client

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param use_robocorp_vault:use secret stored in Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

Initialize AWS SQS client

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
queue_urlstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param queue_url:SQS queue url
param use_robocorp_vault:use secret stored into Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

Initialize AWS STS client.

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param use_robocorp_vault:use secret stored in Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

Initialize AWS Textract client

Arguments

ArgumentTypeDefault value
aws_key_idstr, NoneNone
aws_keystr, NoneNone
regionstr, NoneNone
use_robocorp_vaultboolFalse
session_tokenstr, NoneNone
param aws_key_id:access key ID
param aws_key:secret access key
param region:AWS region
param use_robocorp_vault:use secret stored in Robocorp Vault
param session_token:a session token associated with temporary credentials, such as from Assume Role.

List all buckets for this account

return:list of buckets

List files in the bucket

Arguments

ArgumentTypeDefault value
bucket_namestrnull
limitint, NoneNone
searchstr, NoneNone
prefixstr, NoneNone
kwargsnull

note This keyword accepts additional parameters in key=value format

More info on additional parameters.

param bucket_name:name for the bucket
param limit:limits the response to maximum number of items
param search:JMESPATH expression to filter objects
param prefix:limits the response to keys that begin with the specified prefix
param kwargs:allows setting all extra parameters for list_objects_v2 method
return:list of files

Python examples

# List all files in a bucket files = AWSlibrary.list_files("bucket_name") # List files in a bucket matching .yaml files = AWSlibrary.list_files( "bucket_name", search="Contents[?contains(Key, '.yaml')]" ) # List files in a bucket matching .png and limit results to max 3 files = AWSlibrary.list_files( "bucket_name", limit=3, search="Contents[?contains(Key, '.png')]" ) # List files in a bucket prefixed with special and get only 1 files = AWSlibrary.list_files( "bucket_name", prefix="special", limit=1 )

Robot Framework examples

# List all files in a bucket @{files}= List Files bucket-name # List files in a bucket matching .yaml @{files}= List Files ... bucket-name ... search=Contents[?contains(Key, '.yaml')] # List files in a bucket matching .png and limit results to max 3 @{files}= List Files ... bucket-name ... limit=3 ... search=Contents[?contains(Key, '.png')] # List files in a bucket prefixed with special and get only 1 @{files}= List Files ... bucket-name ... prefix=special ... limit=1 )

List the databases in a cluster.

Database names are returned as a list of strings.

Lists the schemas in a database.

Arguments

ArgumentTypeDefault value
databasestr, NoneNone
schema_patternstr, NoneNone

Schema names are returned as a list of strings.

param database:The name of the database that contains the schemas to list. If ommitted, will use the connected Database.
param schema_pattern:A pattern to filter results by schema name. Within a schema pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only schema name entries matching the search pattern are returned. If schema_pattern is not specified, then all schemas are returned.

List the tables in a database. If neither schema_pattern nor table_pattern are specified, then all tables in the database are returned.

Arguments

ArgumentTypeDefault value
databasestr, NoneNone
schema_patternstr, NoneNone
table_patternstr, NoneNone

Returned objects are structured like the below JSON in a list:

{ "name": "string", "schema": "string", "type": "string" }
param database:The name of the database that contains the tables to be described. If ommitted, will use the connected Database.
param schema_pattern:A pattern to filter results by schema name. Within a schema pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only schema name entries matching the search pattern are returned. If schema_pattern is not specified, then all tables that match table_pattern are returned. If neither schema_pattern or table_pattern are specified, then all tables are returned.
param table_pattern:A pattern to filter results by table name. Within a table pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only table name entries matching the search pattern are returned. If table_pattern is not specified, then all tables that match schema_pattern are returned. If neither schema_pattern or table_pattern are specified, then all tables are returned.

Receive message from queue

return:message as dict

Send message to the queue

Arguments

ArgumentTypeDefault value
messagestr, NoneNone
message_attributesdict, NoneNone
param message:body of the message
param message_attributes:attributes of the message
return:send message response as dict

Set Robocorp Vault name

Arguments

ArgumentTypeDefault value
vault_namenull
param vault_name:Robocorp Vault name

Starts the asynchronous analysis of an input document for relationships between detected items such as key-value pairs, tables, and selection elements.

Arguments

ArgumentTypeDefault value
bucket_name_instr, NoneNone
object_name_instr, NoneNone
object_version_instr, NoneNone
bucket_name_outstr, NoneNone
prefix_object_outstrtextract_output
param bucket_name_in:name of the S3 bucket for the input object, defaults to None
param object_name_in:name of the input object, defaults to None
param object_version_in:version of the input object, defaults to None
param bucket_name_out:name of the S3 bucket where to save analysis result object, defaults to None
param prefix_object_out:name of the S3 bucket for the analysis result object,
return:job identifier

Input object can be in JPEG, PNG or PDF format. Documents should be located in the Amazon S3 bucket.

By default Amazon Textract will save the analysis result internally to be accessed by keyword Get Document Analysis. This can be overridden by giving parameter bucket_name_out.

Starts the asynchronous detection of text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.

Arguments

ArgumentTypeDefault value
bucket_name_instr, NoneNone
object_name_instr, NoneNone
object_version_instr, NoneNone
bucket_name_outstr, NoneNone
prefix_object_outstrtextract_output
param bucket_name_in:name of the S3 bucket for the input object, defaults to None
param object_name_in:name of the input object, defaults to None
param object_version_in:version of the input object, defaults to None
param bucket_name_out:name of the S3 bucket where to save analysis result object, defaults to None
param prefix_object_out:name of the S3 bucket for the analysis result object,
return:job identifier

Input object can be in JPEG, PNG or PDF format. Documents should be located in the Amazon S3 bucket.

By default Amazon Textract will save the analysis result internally to be accessed by keyword Get Document Text Detection. This can be overridden by giving parameter bucket_name_out.

Upload single file into bucket

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
filenamestr, NoneNone
object_namestr, NoneNone
kwargsnull
param bucket_name:name for the bucket
param filename:filepath for the file to be uploaded
param object_name:name of the object in the bucket, defaults to None
return:tuple of upload status and error

If object_name is not given then basename of the file is used as object_name.

note This keyword accepts additional parameters in key=value format (see below code example).

More info on additional parameters.

Robot Framework example:

&{extras}= Evaluate {'ContentType': 'image/png'} ${uploaded} ${error}= Upload File ... mybucket ... ${CURDIR}${/}image.png ... image.png ... ExtraArgs=${extras}

Upload multiple files into bucket

Arguments

ArgumentTypeDefault value
bucket_namestr, NoneNone
fileslist, NoneNone
kwargsnull
param bucket_name:name for the bucket
param files:list of files (2 possible ways, see above)
return:number of files uploaded
Giving files as list of filepaths:
['/path/to/file1.txt', '/path/to/file2.txt']
Giving files as list of dictionaries (including filepath and object name):
[{'filename':'/path/to/file1.txt', 'object_name': 'file1.txt'}, {'filename': '/path/to/file2.txt', 'object_name': 'file2.txt'}]

note This keyword accepts additional parameters in key=value format (see below code example).

More info on additional parameters.

Python example (passing ExtraArgs):

upload_files = [ { "filename": "./image.png", "object_name": "image.png", "ExtraArgs": {"ContentType": "image/png", "Metadata": {"importance": "1"}}, }, { "filename": "./doc.pdf", "object_name": "doc.pdf", "ExtraArgs": {"ContentType": "application/pdf"}, }, ] awslibrary.upload_files("mybucket", files=upload_files)