diff --git a/apis/customer-profiles/2020-08-15/api-2.json b/apis/customer-profiles/2020-08-15/api-2.json index 47ef40aa0c7..6a7727b7b1d 100644 --- a/apis/customer-profiles/2020-08-15/api-2.json +++ b/apis/customer-profiles/2020-08-15/api-2.json @@ -45,6 +45,22 @@ {"shape":"InternalServerException"} ] }, + "CreateIntegrationWorkflow":{ + "name":"CreateIntegrationWorkflow", + "http":{ + "method":"POST", + "requestUri":"/domains/{DomainName}/workflows/integrations" + }, + "input":{"shape":"CreateIntegrationWorkflowRequest"}, + "output":{"shape":"CreateIntegrationWorkflowResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, "CreateProfile":{ "name":"CreateProfile", "http":{ @@ -157,6 +173,22 @@ {"shape":"InternalServerException"} ] }, + "DeleteWorkflow":{ + "name":"DeleteWorkflow", + "http":{ + "method":"DELETE", + "requestUri":"/domains/{DomainName}/workflows/{WorkflowId}" + }, + "input":{"shape":"DeleteWorkflowRequest"}, + "output":{"shape":"DeleteWorkflowResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, "GetAutoMergingPreview":{ "name":"GetAutoMergingPreview", "http":{ @@ -269,6 +301,38 @@ {"shape":"InternalServerException"} ] }, + "GetWorkflow":{ + "name":"GetWorkflow", + "http":{ + "method":"GET", + "requestUri":"/domains/{DomainName}/workflows/{WorkflowId}" + }, + "input":{"shape":"GetWorkflowRequest"}, + "output":{"shape":"GetWorkflowResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetWorkflowSteps":{ + "name":"GetWorkflowSteps", + "http":{ + "method":"GET", + "requestUri":"/domains/{DomainName}/workflows/{WorkflowId}/steps" + }, + "input":{"shape":"GetWorkflowStepsRequest"}, + "output":{"shape":"GetWorkflowStepsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, "ListAccountIntegrations":{ "name":"ListAccountIntegrations", "http":{ @@ -395,6 +459,22 @@ {"shape":"ResourceNotFoundException"} ] }, + "ListWorkflows":{ + "name":"ListWorkflows", + "http":{ + "method":"POST", + "requestUri":"/domains/{DomainName}/workflows" + }, + "input":{"shape":"ListWorkflowsRequest"}, + "output":{"shape":"ListWorkflowsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, "MergeProfiles":{ "name":"MergeProfiles", "http":{ @@ -591,6 +671,62 @@ "PostalCode":{"shape":"string1To255"} } }, + "AppflowIntegration":{ + "type":"structure", + "required":["FlowDefinition"], + "members":{ + "FlowDefinition":{"shape":"FlowDefinition"}, + "Batches":{"shape":"Batches"} + } + }, + "AppflowIntegrationWorkflowAttributes":{ + "type":"structure", + "required":[ + "SourceConnectorType", + "ConnectorProfileName" + ], + "members":{ + "SourceConnectorType":{"shape":"SourceConnectorType"}, + "ConnectorProfileName":{"shape":"ConnectorProfileName"}, + "RoleArn":{"shape":"string1To255"} + } + }, + "AppflowIntegrationWorkflowMetrics":{ + "type":"structure", + "required":[ + "RecordsProcessed", + "StepsCompleted", + "TotalSteps" + ], + "members":{ + "RecordsProcessed":{"shape":"long"}, + "StepsCompleted":{"shape":"long"}, + "TotalSteps":{"shape":"long"} + } + }, + "AppflowIntegrationWorkflowStep":{ + "type":"structure", + "required":[ + "FlowName", + "Status", + "ExecutionMessage", + "RecordsProcessed", + "BatchRecordsStartTime", + "BatchRecordsEndTime", + "CreatedAt", + "LastUpdatedAt" + ], + "members":{ + "FlowName":{"shape":"FlowName"}, + "Status":{"shape":"Status"}, + "ExecutionMessage":{"shape":"string1To255"}, + "RecordsProcessed":{"shape":"long"}, + "BatchRecordsStartTime":{"shape":"string1To255"}, + "BatchRecordsEndTime":{"shape":"string1To255"}, + "CreatedAt":{"shape":"timestamp"}, + "LastUpdatedAt":{"shape":"timestamp"} + } + }, "AttributeSourceIdMap":{ "type":"map", "key":{"shape":"string1To255"}, @@ -618,6 +754,21 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Batch":{ + "type":"structure", + "required":[ + "StartTime", + "EndTime" + ], + "members":{ + "StartTime":{"shape":"timestamp"}, + "EndTime":{"shape":"timestamp"} + } + }, + "Batches":{ + "type":"list", + "member":{"shape":"Batch"} + }, "BucketName":{ "type":"string", "max":63, @@ -704,6 +855,39 @@ "Tags":{"shape":"TagMap"} } }, + "CreateIntegrationWorkflowRequest":{ + "type":"structure", + "required":[ + "DomainName", + "WorkflowType", + "IntegrationConfig", + "ObjectTypeName", + "RoleArn" + ], + "members":{ + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + }, + "WorkflowType":{"shape":"WorkflowType"}, + "IntegrationConfig":{"shape":"IntegrationConfig"}, + "ObjectTypeName":{"shape":"typeName"}, + "RoleArn":{"shape":"RoleArn"}, + "Tags":{"shape":"TagMap"} + } + }, + "CreateIntegrationWorkflowResponse":{ + "type":"structure", + "required":[ + "WorkflowId", + "Message" + ], + "members":{ + "WorkflowId":{"shape":"uuid"}, + "Message":{"shape":"string1To255"} + } + }, "CreateProfileRequest":{ "type":"structure", "required":["DomainName"], @@ -893,6 +1077,30 @@ "Message":{"shape":"message"} } }, + "DeleteWorkflowRequest":{ + "type":"structure", + "required":[ + "DomainName", + "WorkflowId" + ], + "members":{ + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + }, + "WorkflowId":{ + "shape":"string1To255", + "location":"uri", + "locationName":"WorkflowId" + } + } + }, + "DeleteWorkflowResponse":{ + "type":"structure", + "members":{ + } + }, "DestinationField":{ "type":"string", "max":256, @@ -1127,7 +1335,8 @@ "CreatedAt":{"shape":"timestamp"}, "LastUpdatedAt":{"shape":"timestamp"}, "Tags":{"shape":"TagMap"}, - "ObjectTypeNames":{"shape":"ObjectTypeNames"} + "ObjectTypeNames":{"shape":"ObjectTypeNames"}, + "WorkflowId":{"shape":"string1To255"} } }, "GetMatchesRequest":{ @@ -1223,6 +1432,76 @@ "Keys":{"shape":"KeyMap"} } }, + "GetWorkflowRequest":{ + "type":"structure", + "required":[ + "DomainName", + "WorkflowId" + ], + "members":{ + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + }, + "WorkflowId":{ + "shape":"uuid", + "location":"uri", + "locationName":"WorkflowId" + } + } + }, + "GetWorkflowResponse":{ + "type":"structure", + "members":{ + "WorkflowId":{"shape":"uuid"}, + "WorkflowType":{"shape":"WorkflowType"}, + "Status":{"shape":"Status"}, + "ErrorDescription":{"shape":"string1To255"}, + "StartDate":{"shape":"timestamp"}, + "LastUpdatedAt":{"shape":"timestamp"}, + "Attributes":{"shape":"WorkflowAttributes"}, + "Metrics":{"shape":"WorkflowMetrics"} + } + }, + "GetWorkflowStepsRequest":{ + "type":"structure", + "required":[ + "DomainName", + "WorkflowId" + ], + "members":{ + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + }, + "WorkflowId":{ + "shape":"uuid", + "location":"uri", + "locationName":"WorkflowId" + }, + "NextToken":{ + "shape":"token", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"maxSize100", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "GetWorkflowStepsResponse":{ + "type":"structure", + "members":{ + "WorkflowId":{"shape":"uuid"}, + "WorkflowType":{"shape":"WorkflowType"}, + "Items":{"shape":"WorkflowStepsList"}, + "NextToken":{"shape":"token"} + } + }, "IdentityResolutionJob":{ "type":"structure", "members":{ @@ -1258,6 +1537,12 @@ "DatetimeTypeFieldName":{"shape":"DatetimeTypeFieldName"} } }, + "IntegrationConfig":{ + "type":"structure", + "members":{ + "AppflowIntegration":{"shape":"AppflowIntegration"} + } + }, "IntegrationList":{ "type":"list", "member":{"shape":"ListIntegrationItem"} @@ -1333,6 +1618,11 @@ "shape":"maxSize100", "location":"querystring", "locationName":"max-results" + }, + "IncludeHidden":{ + "shape":"optionalBoolean", + "location":"querystring", + "locationName":"include-hidden" } } }, @@ -1422,7 +1712,8 @@ "CreatedAt":{"shape":"timestamp"}, "LastUpdatedAt":{"shape":"timestamp"}, "Tags":{"shape":"TagMap"}, - "ObjectTypeNames":{"shape":"ObjectTypeNames"} + "ObjectTypeNames":{"shape":"ObjectTypeNames"}, + "WorkflowId":{"shape":"string1To255"} } }, "ListIntegrationsRequest":{ @@ -1443,6 +1734,11 @@ "shape":"maxSize100", "location":"querystring", "locationName":"max-results" + }, + "IncludeHidden":{ + "shape":"optionalBoolean", + "location":"querystring", + "locationName":"include-hidden" } } }, @@ -1585,6 +1881,57 @@ "tags":{"shape":"TagMap"} } }, + "ListWorkflowsItem":{ + "type":"structure", + "required":[ + "WorkflowType", + "WorkflowId", + "Status", + "StatusDescription", + "CreatedAt", + "LastUpdatedAt" + ], + "members":{ + "WorkflowType":{"shape":"WorkflowType"}, + "WorkflowId":{"shape":"string1To255"}, + "Status":{"shape":"Status"}, + "StatusDescription":{"shape":"string1To255"}, + "CreatedAt":{"shape":"timestamp"}, + "LastUpdatedAt":{"shape":"timestamp"} + } + }, + "ListWorkflowsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + }, + "WorkflowType":{"shape":"WorkflowType"}, + "Status":{"shape":"Status"}, + "QueryStartDate":{"shape":"timestamp"}, + "QueryEndDate":{"shape":"timestamp"}, + "NextToken":{ + "shape":"token", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"maxSize100", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListWorkflowsResponse":{ + "type":"structure", + "members":{ + "Items":{"shape":"WorkflowList"}, + "NextToken":{"shape":"token"} + } + }, "MarketoConnectorOperator":{ "type":"string", "enum":[ @@ -1836,7 +2183,8 @@ "CreatedAt":{"shape":"timestamp"}, "LastUpdatedAt":{"shape":"timestamp"}, "Tags":{"shape":"TagMap"}, - "ObjectTypeNames":{"shape":"ObjectTypeNames"} + "ObjectTypeNames":{"shape":"ObjectTypeNames"}, + "WorkflowId":{"shape":"string1To255"} } }, "PutProfileObjectRequest":{ @@ -1920,6 +2268,11 @@ "error":{"httpStatusCode":404}, "exception":true }, + "RoleArn":{ + "type":"string", + "max":512, + "pattern":"arn:aws:iam:.*:[0-9]+:.*" + }, "S3ConnectorOperator":{ "type":"string", "enum":[ @@ -2150,6 +2503,18 @@ "type":"list", "member":{"shape":"StandardIdentifier"} }, + "Status":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETE", + "FAILED", + "SPLIT", + "RETRY", + "CANCELLED" + ] + }, "TagArn":{ "type":"string", "max":256, @@ -2389,6 +2754,36 @@ "ProfileId":{"shape":"uuid"} } }, + "WorkflowAttributes":{ + "type":"structure", + "members":{ + "AppflowIntegration":{"shape":"AppflowIntegrationWorkflowAttributes"} + } + }, + "WorkflowList":{ + "type":"list", + "member":{"shape":"ListWorkflowsItem"} + }, + "WorkflowMetrics":{ + "type":"structure", + "members":{ + "AppflowIntegration":{"shape":"AppflowIntegrationWorkflowMetrics"} + } + }, + "WorkflowStepItem":{ + "type":"structure", + "members":{ + "AppflowIntegration":{"shape":"AppflowIntegrationWorkflowStep"} + } + }, + "WorkflowStepsList":{ + "type":"list", + "member":{"shape":"WorkflowStepItem"} + }, + "WorkflowType":{ + "type":"string", + "enum":["APPFLOW_INTEGRATION"] + }, "ZendeskConnectorOperator":{ "type":"string", "enum":[ diff --git a/apis/customer-profiles/2020-08-15/docs-2.json b/apis/customer-profiles/2020-08-15/docs-2.json index e472460f25a..28ea348ec4e 100644 --- a/apis/customer-profiles/2020-08-15/docs-2.json +++ b/apis/customer-profiles/2020-08-15/docs-2.json @@ -4,6 +4,7 @@ "operations": { "AddProfileKey": "

Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) ContactId.

A profile object can have a single unique key and any number of additional keys that can be used to identify the profile that it belongs to.

", "CreateDomain": "

Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party integrations.

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.

Use this API or UpdateDomain to enable identity resolution: set Matching to true.

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply.

", + "CreateIntegrationWorkflow": "

Creates an integration workflow. An integration workflow is an async process which ingests historic data and sets up an integration for ongoing updates. The supported Amazon AppFlow sources are Salesforce, ServiceNow, and Marketo.

", "CreateProfile": "

Creates a standard profile.

A standard profile represents the following attributes for a customer profile in a domain.

", "DeleteDomain": "

Deletes a specific domain and all of its customer data, such as customer profile attributes and their related objects.

", "DeleteIntegration": "

Removes an integration from a specific domain.

", @@ -11,13 +12,16 @@ "DeleteProfileKey": "

Removes a searchable key from a customer profile.

", "DeleteProfileObject": "

Removes an object associated with a profile of a given ProfileObjectType.

", "DeleteProfileObjectType": "

Removes a ProfileObjectType from a specific domain as well as removes all the ProfileObjects of that type. It also disables integrations from this specific ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that were populated from this ProfileObjectType.

", + "DeleteWorkflow": "

Deletes the specified workflow and all its corresponding resources. This is an async process.

", "GetAutoMergingPreview": "

Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly selects a sample of matching groups from the existing matching results, and applies the automerging settings that you provided. You can then view the number of profiles in the sample, the number of matches, and the number of profiles identified to be merged. This enables you to evaluate the accuracy of the attributes in your matching list.

You can't view which profiles are matched and would be merged.

We strongly recommend you use this API to do a dry run of the automerging process before running the Identity Resolution Job. Include at least two matching attributes. If your matching list includes too few attributes (such as only FirstName or only LastName), there may be a large number of matches. This increases the chances of erroneous merges.

", "GetDomain": "

Returns information about a specific domain.

", "GetIdentityResolutionJob": "

Returns information about an Identity Resolution Job in a specific domain.

Identity Resolution Jobs are set up using the Amazon Connect admin console. For more information, see Use Identity Resolution to consolidate similar profiles.

", "GetIntegration": "

Returns an integration for a domain.

", - "GetMatches": "

Before calling this API, use CreateDomain or UpdateDomain to enable identity resolution: set Matching to true.

GetMatches returns potentially matching profiles, based on the results of the latest run of a machine learning process.

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in your domains.

After the Identity Resolution Job completes, use the GetMatches API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from S3.

Amazon Connect uses the following profile attributes to identify matches:

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing email addresses such as JOHN_DOE@ANYCOMPANY.COM and johndoe@anycompany.com, or different phone number formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

", + "GetMatches": "

Before calling this API, use CreateDomain or UpdateDomain to enable identity resolution: set Matching to true.

GetMatches returns potentially matching profiles, based on the results of the latest run of a machine learning process.

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in your domains.

After the Identity Resolution Job completes, use the GetMatches API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from S3.

Amazon Connect uses the following profile attributes to identify matches:

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing email addresses such as JOHN_DOE@ANYCOMPANY.COM and johndoe@anycompany.com, or different phone number formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

", "GetProfileObjectType": "

Returns the object types for a specific domain.

", "GetProfileObjectTypeTemplate": "

Returns the template information for a specific object type.

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the template.

", + "GetWorkflow": "

Get details of specified workflow.

", + "GetWorkflowSteps": "

Get granular list of steps in workflow.

", "ListAccountIntegrations": "

Lists all of the integrations associated to a specific URI in the AWS account.

", "ListDomains": "

Returns a list of all the domains for an AWS account that have been created.

", "ListIdentityResolutionJobs": "

Lists all of the Identity Resolution Jobs in your domain. The response sorts the list by JobStartTime.

", @@ -26,6 +30,7 @@ "ListProfileObjectTypes": "

Lists all of the templates available within the service.

", "ListProfileObjects": "

Returns a list of objects associated with a profile of a given ProfileObjectType.

", "ListTagsForResource": "

Displays the tags associated with an Amazon Connect Customer Profiles resource. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.

", + "ListWorkflows": "

Query to list all workflows.

", "MergeProfiles": "

Runs an AWS Lambda job that does the following:

  1. All the profileKeys in the ProfileToBeMerged will be moved to the main profile.

  2. All the objects in the ProfileToBeMerged will be moved to the main profile.

  3. All the ProfileToBeMerged will be deleted at the end.

  4. All the profileKeys in the ProfileIdsToBeMerged will be moved to the main profile.

  5. Standard fields are merged as follows:

    1. Fields are always \"union\"-ed if there are no conflicts in standard fields or attributeKeys.

    2. When there are conflicting fields:

      1. If no SourceProfileIds entry is specified, the main Profile value is always taken.

      2. If a SourceProfileIds entry is specified, the specified profileId is always taken, even if it is a NULL value.

You can use MergeProfiles together with GetMatches, which returns potentially matching profiles, or use it with the results of another matching system. After profiles have been merged, they cannot be separated (unmerged).

", "PutIntegration": "

Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect.

An integration can belong to only one domain.

", "PutProfileObject": "

Adds additional objects to customer profiles of a given ObjectType.

When adding a specific profile object, like a Contact Trace Record (CTR), an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional CTRs with the same phone number will be mapped to the same inferred profile.

When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition.

PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.

", @@ -45,6 +50,7 @@ "AddProfileKeyResponse$KeyName": "

A searchable identifier of a customer profile.

", "CreateDomainRequest$DomainName": "

The unique name of the domain.

", "CreateDomainResponse$DomainName": "

The unique name of the domain.

", + "CreateIntegrationWorkflowRequest$DomainName": "

The unique name of the domain.

", "CreateProfileRequest$DomainName": "

The unique name of the domain.

", "DeleteDomainRequest$DomainName": "

The unique name of the domain.

", "DeleteIntegrationRequest$DomainName": "

The unique name of the domain.

", @@ -53,6 +59,7 @@ "DeleteProfileObjectRequest$DomainName": "

The unique name of the domain.

", "DeleteProfileObjectTypeRequest$DomainName": "

The unique name of the domain.

", "DeleteProfileRequest$DomainName": "

The unique name of the domain.

", + "DeleteWorkflowRequest$DomainName": "

The unique name of the domain.

", "FieldMap$key": null, "FieldNameList$member": null, "GetAutoMergingPreviewRequest$DomainName": "

The unique name of the domain.

", @@ -70,6 +77,8 @@ "GetProfileObjectTypeTemplateResponse$TemplateId": "

A unique identifier for the object template.

", "GetProfileObjectTypeTemplateResponse$SourceName": "

The name of the source of the object template.

", "GetProfileObjectTypeTemplateResponse$SourceObject": "

The source of the object template.

", + "GetWorkflowRequest$DomainName": "

The unique name of the domain.

", + "GetWorkflowStepsRequest$DomainName": "

The unique name of the domain.

", "IdentityResolutionJob$DomainName": "

The unique name of the domain.

", "KeyMap$key": null, "ListDomainItem$DomainName": "

The unique name of the domain.

", @@ -81,6 +90,7 @@ "ListProfileObjectTypeTemplateItem$SourceObject": "

The source of the object template.

", "ListProfileObjectTypesRequest$DomainName": "

The unique name of the domain.

", "ListProfileObjectsRequest$DomainName": "

The unique name of the domain.

", + "ListWorkflowsRequest$DomainName": "

The unique name of the domain.

", "MergeProfilesRequest$DomainName": "

The unique name of the domain.

", "ObjectFilter$KeyName": "

A searchable identifier of a standard profile object. The predefined keys you can use to search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can use to search for _case include: _caseId. The predefined keys you can use to search for _order include: _orderId.

", "PutIntegrationRequest$DomainName": "

The unique name of the domain.

", @@ -124,6 +134,30 @@ "Profile$BillingAddress": "

The customer’s billing address.

" } }, + "AppflowIntegration": { + "base": "

Details for workflow of type APPFLOW_INTEGRATION.

", + "refs": { + "IntegrationConfig$AppflowIntegration": "

Configuration data for APPFLOW_INTEGRATION workflow type.

" + } + }, + "AppflowIntegrationWorkflowAttributes": { + "base": "

Structure holding all APPFLOW_INTEGRATION specific workflow attributes.

", + "refs": { + "WorkflowAttributes$AppflowIntegration": "

Workflow attributes specific to APPFLOW_INTEGRATION workflow.

" + } + }, + "AppflowIntegrationWorkflowMetrics": { + "base": "

Workflow specific execution metrics for APPFLOW_INTEGRATION workflow.

", + "refs": { + "WorkflowMetrics$AppflowIntegration": "

Workflow execution metrics for APPFLOW_INTEGRATION workflow.

" + } + }, + "AppflowIntegrationWorkflowStep": { + "base": "

Workflow step details for APPFLOW_INTEGRATION workflow.

", + "refs": { + "WorkflowStepItem$AppflowIntegration": "

Workflow step information specific to APPFLOW_INTEGRATION workflow.

" + } + }, "AttributeSourceIdMap": { "base": null, "refs": { @@ -150,6 +184,18 @@ "refs": { } }, + "Batch": { + "base": "

Batch defines the boundaries for ingestion for each step in APPFLOW_INTEGRATION workflow. APPFLOW_INTEGRATION workflow splits ingestion based on these boundaries.

", + "refs": { + "Batches$member": null + } + }, + "Batches": { + "base": null, + "refs": { + "AppflowIntegration$Batches": "

Batches in workflow of type APPFLOW_INTEGRATION.

" + } + }, "BucketName": { "base": null, "refs": { @@ -184,6 +230,7 @@ "ConnectorProfileName": { "base": null, "refs": { + "AppflowIntegrationWorkflowAttributes$ConnectorProfileName": "

The name of the AppFlow connector profile used for ingestion.

", "SourceFlowConfig$ConnectorProfileName": "

The name of the AppFlow connector profile. This name must be unique for each connector profile in the AWS account.

" } }, @@ -204,6 +251,16 @@ "refs": { } }, + "CreateIntegrationWorkflowRequest": { + "base": null, + "refs": { + } + }, + "CreateIntegrationWorkflowResponse": { + "base": null, + "refs": { + } + }, "CreateProfileRequest": { "base": null, "refs": { @@ -294,6 +351,16 @@ "refs": { } }, + "DeleteWorkflowRequest": { + "base": null, + "refs": { + } + }, + "DeleteWorkflowResponse": { + "base": null, + "refs": { + } + }, "DestinationField": { "base": null, "refs": { @@ -362,6 +429,7 @@ "FlowDefinition": { "base": "

The configurations that control how Customer Profiles retrieves data from the source, Amazon AppFlow. Customer Profiles uses this information to create an AppFlow flow on behalf of customers.

", "refs": { + "AppflowIntegration$FlowDefinition": null, "PutIntegrationRequest$FlowDefinition": "

The configuration that controls how Customer Profiles retrieves data from the source.

" } }, @@ -374,6 +442,7 @@ "FlowName": { "base": null, "refs": { + "AppflowIntegrationWorkflowStep$FlowName": "

Name of the flow created during execution of workflow step. APPFLOW_INTEGRATION workflow type creates an appflow flow during workflow step execution on the customers behalf.

", "FlowDefinition$FlowName": "

The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.

" } }, @@ -455,6 +524,26 @@ "refs": { } }, + "GetWorkflowRequest": { + "base": null, + "refs": { + } + }, + "GetWorkflowResponse": { + "base": null, + "refs": { + } + }, + "GetWorkflowStepsRequest": { + "base": null, + "refs": { + } + }, + "GetWorkflowStepsResponse": { + "base": null, + "refs": { + } + }, "IdentityResolutionJob": { "base": "

Information about the Identity Resolution Job.

", "refs": { @@ -480,6 +569,12 @@ "SourceFlowConfig$IncrementalPullConfig": "

Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull.

" } }, + "IntegrationConfig": { + "base": "

Configuration data for integration workflow.

", + "refs": { + "CreateIntegrationWorkflowRequest$IntegrationConfig": "

Configuration data for integration workflow.

" + } + }, "IntegrationList": { "base": null, "refs": { @@ -643,6 +738,22 @@ "refs": { } }, + "ListWorkflowsItem": { + "base": "

A workflow in list of workflows.

", + "refs": { + "WorkflowList$member": null + } + }, + "ListWorkflowsRequest": { + "base": null, + "refs": { + } + }, + "ListWorkflowsResponse": { + "base": null, + "refs": { + } + }, "MarketoConnectorOperator": { "base": null, "refs": { @@ -843,6 +954,12 @@ "refs": { } }, + "RoleArn": { + "base": null, + "refs": { + "CreateIntegrationWorkflowRequest$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

" + } + }, "S3ConnectorOperator": { "base": null, "refs": { @@ -928,6 +1045,7 @@ "SourceConnectorType": { "base": null, "refs": { + "AppflowIntegrationWorkflowAttributes$SourceConnectorType": "

Specifies the source connector type, such as Salesforce, ServiceNow, and Marketo. Indicates source of ingestion.

", "SourceFlowConfig$ConnectorType": "

The type of connector, such as Salesforce, Marketo, and so on.

" } }, @@ -955,6 +1073,15 @@ "ObjectTypeKey$StandardIdentifiers": "

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key can be used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.

" } }, + "Status": { + "base": null, + "refs": { + "AppflowIntegrationWorkflowStep$Status": "

Workflow step status for APPFLOW_INTEGRATION workflow.

", + "GetWorkflowResponse$Status": "

Status of workflow execution.

", + "ListWorkflowsItem$Status": "

Status of workflow execution.

", + "ListWorkflowsRequest$Status": "

Status of workflow execution.

" + } + }, "TagArn": { "base": null, "refs": { @@ -981,6 +1108,7 @@ "refs": { "CreateDomainRequest$Tags": "

The tags used to organize, track, or control access for this resource.

", "CreateDomainResponse$Tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateIntegrationWorkflowRequest$Tags": "

The tags used to organize, track, or control access for this resource.

", "GetDomainResponse$Tags": "

The tags used to organize, track, or control access for this resource.

", "GetIntegrationResponse$Tags": "

The tags used to organize, track, or control access for this resource.

", "GetProfileObjectTypeResponse$Tags": "

The tags used to organize, track, or control access for this resource.

", @@ -1111,6 +1239,46 @@ "refs": { } }, + "WorkflowAttributes": { + "base": "

Structure to hold workflow attributes.

", + "refs": { + "GetWorkflowResponse$Attributes": "

Attributes provided for workflow execution.

" + } + }, + "WorkflowList": { + "base": null, + "refs": { + "ListWorkflowsResponse$Items": "

List containing workflow details.

" + } + }, + "WorkflowMetrics": { + "base": "

Generic object containing workflow execution metrics.

", + "refs": { + "GetWorkflowResponse$Metrics": "

Workflow specific execution metrics.

" + } + }, + "WorkflowStepItem": { + "base": "

List containing steps in workflow.

", + "refs": { + "WorkflowStepsList$member": null + } + }, + "WorkflowStepsList": { + "base": null, + "refs": { + "GetWorkflowStepsResponse$Items": "

List containing workflow step details.

" + } + }, + "WorkflowType": { + "base": null, + "refs": { + "CreateIntegrationWorkflowRequest$WorkflowType": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

", + "GetWorkflowResponse$WorkflowType": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

", + "GetWorkflowStepsResponse$WorkflowType": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

", + "ListWorkflowsItem$WorkflowType": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

", + "ListWorkflowsRequest$WorkflowType": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

" + } + }, "ZendeskConnectorOperator": { "base": null, "refs": { @@ -1163,6 +1331,10 @@ "long": { "base": null, "refs": { + "AppflowIntegrationWorkflowMetrics$RecordsProcessed": "

Number of records processed in APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowMetrics$StepsCompleted": "

Total steps completed in APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowMetrics$TotalSteps": "

Total steps in APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowStep$RecordsProcessed": "

Total number of records processed during execution of workflow step for APPFLOW_INTEGRATION workflow.

", "DomainStats$ProfileCount": "

The total number of profiles currently in the domain.

", "DomainStats$MeteringProfileCount": "

The number of profiles that you are currently paying for in the domain. If you have more than 100 objects associated with a single profile, that profile counts as two profiles. If you have more than 200 objects, that profile counts as three, and so on.

", "DomainStats$ObjectCount": "

The total number of objects in domain.

", @@ -1185,6 +1357,7 @@ "base": null, "refs": { "GetMatchesRequest$MaxResults": "

The maximum number of results to return per page.

", + "GetWorkflowStepsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListAccountIntegrationsRequest$MaxResults": "

The maximum number of objects returned per page.

", "ListDomainsRequest$MaxResults": "

The maximum number of objects returned per page.

", "ListIdentityResolutionJobsRequest$MaxResults": "

The maximum number of results to return per page.

", @@ -1192,6 +1365,7 @@ "ListProfileObjectTypeTemplatesRequest$MaxResults": "

The maximum number of objects returned per page.

", "ListProfileObjectTypesRequest$MaxResults": "

The maximum number of objects returned per page.

", "ListProfileObjectsRequest$MaxResults": "

The maximum number of objects returned per page.

", + "ListWorkflowsRequest$MaxResults": "

The maximum number of results to return per page.

", "SearchProfilesRequest$MaxResults": "

The maximum number of objects returned per page.

" } }, @@ -1216,6 +1390,8 @@ "base": null, "refs": { "AutoMerging$Enabled": "

The flag that enables the auto-merging of duplicate profiles.

", + "ListAccountIntegrationsRequest$IncludeHidden": "

Boolean to indicate if hidden integration should be returned. Defaults to False.

", + "ListIntegrationsRequest$IncludeHidden": "

Boolean to indicate if hidden integration should be returned. Defaults to False.

", "MatchingRequest$Enabled": "

The flag that enables the matching process of duplicate profiles.

", "MatchingResponse$Enabled": "

The flag that enables the matching process of duplicate profiles.

" } @@ -1314,10 +1490,15 @@ "Address$Province": "

The province in which a customer lives.

", "Address$Country": "

The country in which a customer lives.

", "Address$PostalCode": "

The postal code of a customer address.

", + "AppflowIntegrationWorkflowAttributes$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

", + "AppflowIntegrationWorkflowStep$ExecutionMessage": "

Message indicating execution of workflow step for APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowStep$BatchRecordsStartTime": "

Start datetime of records pulled in batch during execution of workflow step for APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowStep$BatchRecordsEndTime": "

End datetime of records pulled in batch during execution of workflow step for APPFLOW_INTEGRATION workflow.

", "AttributeSourceIdMap$key": null, "Attributes$key": null, "Attributes$value": null, "ConflictResolution$SourceName": "

The ObjectType name that is used to resolve profile merging conflicts when choosing SOURCE as the ConflictResolvingModel.

", + "CreateIntegrationWorkflowResponse$Message": "

A message indicating create request was received.

", "CreateProfileRequest$AccountNumber": "

A unique account number that you have given to the customer.

", "CreateProfileRequest$BusinessName": "

The name of the customer’s business.

", "CreateProfileRequest$FirstName": "

The customer’s first name.

", @@ -1333,13 +1514,19 @@ "CreateProfileRequest$BusinessEmailAddress": "

The customer’s business email address.

", "DeleteIntegrationRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "DeleteProfileObjectRequest$ProfileObjectUniqueKey": "

The unique identifier of the profile object generated by the service.

", + "DeleteWorkflowRequest$WorkflowId": "

Unique identifier for the workflow.

", "GetIntegrationRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "GetIntegrationResponse$Uri": "

The URI of the S3 bucket or any other type of data source.

", + "GetIntegrationResponse$WorkflowId": "

Unique identifier for the workflow.

", "GetProfileObjectTypeResponse$SourceLastUpdatedTimestampFormat": "

The format of your sourceLastUpdatedTimestamp that was previously set up.

", "GetProfileObjectTypeTemplateResponse$SourceLastUpdatedTimestampFormat": "

The format of your sourceLastUpdatedTimestamp that was previously set up.

", + "GetWorkflowResponse$ErrorDescription": "

Workflow error messages during execution (if any).

", "ListAccountIntegrationsRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "ListIntegrationItem$Uri": "

The URI of the S3 bucket or any other type of data source.

", + "ListIntegrationItem$WorkflowId": "

Unique identifier for the workflow.

", "ListProfileObjectsItem$ProfileObjectUniqueKey": "

The unique identifier of the ProfileObject generated by the service.

", + "ListWorkflowsItem$WorkflowId": "

Unique identifier for the workflow.

", + "ListWorkflowsItem$StatusDescription": "

Description for workflow execution status.

", "MatchItem$MatchId": "

The unique identifiers for this group of profiles that match.

", "MatchingAttributes$member": null, "ObjectTypeNames$key": null, @@ -1358,6 +1545,7 @@ "Profile$BusinessEmailAddress": "

The customer’s business email address.

", "PutIntegrationRequest$Uri": "

The URI of the S3 bucket or any other type of data source.

", "PutIntegrationResponse$Uri": "

The URI of the S3 bucket or any other type of data source.

", + "PutIntegrationResponse$WorkflowId": "

Unique identifier for the workflow.

", "PutProfileObjectResponse$ProfileObjectUniqueKey": "

The unique identifier of the profile object generated by the service.

", "PutProfileObjectTypeRequest$SourceLastUpdatedTimestampFormat": "

The format of your sourceLastUpdatedTimestamp that was previously set up.

", "PutProfileObjectTypeResponse$SourceLastUpdatedTimestampFormat": "

The format of your sourceLastUpdatedTimestamp that was previously set up in fields that were parsed using SimpleDateFormat. If you have sourceLastUpdatedTimestamp in your field, you must set up sourceLastUpdatedTimestampFormat.

", @@ -1394,6 +1582,10 @@ "timestamp": { "base": null, "refs": { + "AppflowIntegrationWorkflowStep$CreatedAt": "

Creation timestamp of workflow step for APPFLOW_INTEGRATION workflow.

", + "AppflowIntegrationWorkflowStep$LastUpdatedAt": "

Last updated timestamp for workflow step for APPFLOW_INTEGRATION workflow.

", + "Batch$StartTime": "

Start time of batch to split ingestion.

", + "Batch$EndTime": "

End time of batch to split ingestion.

", "CreateDomainResponse$CreatedAt": "

The timestamp of when the domain was created.

", "CreateDomainResponse$LastUpdatedAt": "

The timestamp of when the domain was most recently edited.

", "GetDomainResponse$CreatedAt": "

The timestamp of when the domain was created.

", @@ -1407,6 +1599,8 @@ "GetMatchesResponse$MatchGenerationDate": "

The timestamp this version of Match Result generated.

", "GetProfileObjectTypeResponse$CreatedAt": "

The timestamp of when the domain was created.

", "GetProfileObjectTypeResponse$LastUpdatedAt": "

The timestamp of when the domain was most recently edited.

", + "GetWorkflowResponse$StartDate": "

The timestamp that represents when workflow execution started.

", + "GetWorkflowResponse$LastUpdatedAt": "

The timestamp that represents when workflow execution last updated.

", "IdentityResolutionJob$JobStartTime": "

The timestamp of when the job was started or will be started.

", "IdentityResolutionJob$JobEndTime": "

The timestamp of when the job was completed.

", "ListDomainItem$CreatedAt": "

The timestamp of when the domain was created.

", @@ -1415,6 +1609,10 @@ "ListIntegrationItem$LastUpdatedAt": "

The timestamp of when the domain was most recently edited.

", "ListProfileObjectTypeItem$CreatedAt": "

The timestamp of when the domain was created.

", "ListProfileObjectTypeItem$LastUpdatedAt": "

The timestamp of when the domain was most recently edited.

", + "ListWorkflowsItem$CreatedAt": "

Creation timestamp for workflow.

", + "ListWorkflowsItem$LastUpdatedAt": "

Last updated timestamp for workflow.

", + "ListWorkflowsRequest$QueryStartDate": "

Retrieve workflows started after timestamp.

", + "ListWorkflowsRequest$QueryEndDate": "

Retrieve workflows ended after timestamp.

", "PutIntegrationResponse$CreatedAt": "

The timestamp of when the domain was created.

", "PutIntegrationResponse$LastUpdatedAt": "

The timestamp of when the domain was most recently edited.

", "PutProfileObjectTypeResponse$CreatedAt": "

The timestamp of when the domain was created.

", @@ -1428,6 +1626,8 @@ "refs": { "GetMatchesRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", "GetMatchesResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", + "GetWorkflowStepsRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "GetWorkflowStepsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListAccountIntegrationsRequest$NextToken": "

The pagination token from the previous ListAccountIntegrations API call.

", "ListAccountIntegrationsResponse$NextToken": "

The pagination token from the previous ListAccountIntegrations API call.

", "ListDomainsRequest$NextToken": "

The pagination token from the previous ListDomain API call.

", @@ -1442,6 +1642,8 @@ "ListProfileObjectTypesResponse$NextToken": "

Identifies the next page of results to return.

", "ListProfileObjectsRequest$NextToken": "

The pagination token from the previous call to ListProfileObjects.

", "ListProfileObjectsResponse$NextToken": "

The pagination token from the previous call to ListProfileObjects.

", + "ListWorkflowsRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "ListWorkflowsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "SearchProfilesRequest$NextToken": "

The pagination token from the previous SearchProfiles API call.

", "SearchProfilesResponse$NextToken": "

The pagination token from the previous SearchProfiles API call.

" } @@ -1449,6 +1651,7 @@ "typeName": { "base": null, "refs": { + "CreateIntegrationWorkflowRequest$ObjectTypeName": "

The name of the profile object type.

", "DeleteProfileObjectRequest$ObjectTypeName": "

The name of the profile object type.

", "DeleteProfileObjectTypeRequest$ObjectTypeName": "

The name of the profile object type.

", "GetIntegrationResponse$ObjectTypeName": "

The name of the profile object type.

", @@ -1471,6 +1674,7 @@ "refs": { "AddProfileKeyRequest$ProfileId": "

The unique identifier of a customer profile.

", "AttributeSourceIdMap$value": null, + "CreateIntegrationWorkflowResponse$WorkflowId": "

Unique identifier for the workflow.

", "CreateProfileResponse$ProfileId": "

The unique identifier of a customer profile.

", "DeleteProfileKeyRequest$ProfileId": "

The unique identifier of a customer profile.

", "DeleteProfileObjectRequest$ProfileId": "

The unique identifier of a customer profile.

", @@ -1497,6 +1701,10 @@ "FieldSourceProfileIds$BillingAddress": "

A unique identifier for the billing type field to be merged.

", "GetIdentityResolutionJobRequest$JobId": "

The unique identifier of the Identity Resolution Job.

", "GetIdentityResolutionJobResponse$JobId": "

The unique identifier of the Identity Resolution Job.

", + "GetWorkflowRequest$WorkflowId": "

Unique identifier for the workflow.

", + "GetWorkflowResponse$WorkflowId": "

Unique identifier for the workflow.

", + "GetWorkflowStepsRequest$WorkflowId": "

Unique identifier for the workflow.

", + "GetWorkflowStepsResponse$WorkflowId": "

Unique identifier for the workflow.

", "IdentityResolutionJob$JobId": "

The unique identifier of the Identity Resolution Job.

", "ListProfileObjectsRequest$ProfileId": "

The unique identifier of a customer profile.

", "MergeProfilesRequest$MainProfileId": "

The identifier of the profile to be taken.

", diff --git a/apis/dynamodb/2012-08-10/api-2.json b/apis/dynamodb/2012-08-10/api-2.json index 86fd44621d9..8ddbae6b5aa 100644 --- a/apis/dynamodb/2012-08-10/api-2.json +++ b/apis/dynamodb/2012-08-10/api-2.json @@ -1772,7 +1772,8 @@ "Parameters":{"shape":"PreparedStatementParameters"}, "ConsistentRead":{"shape":"ConsistentRead"}, "NextToken":{"shape":"PartiQLNextToken"}, - "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"} + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "Limit":{"shape":"PositiveIntegerObject"} } }, "ExecuteStatementOutput":{ @@ -1780,7 +1781,8 @@ "members":{ "Items":{"shape":"ItemList"}, "NextToken":{"shape":"PartiQLNextToken"}, - "ConsumedCapacity":{"shape":"ConsumedCapacity"} + "ConsumedCapacity":{"shape":"ConsumedCapacity"}, + "LastEvaluatedKey":{"shape":"Key"} } }, "ExecuteTransactionInput":{ diff --git a/apis/dynamodb/2012-08-10/docs-2.json b/apis/dynamodb/2012-08-10/docs-2.json index 610da57b07b..32ec7ccf455 100644 --- a/apis/dynamodb/2012-08-10/docs-2.json +++ b/apis/dynamodb/2012-08-10/docs-2.json @@ -25,7 +25,7 @@ "DescribeTimeToLive": "

Gives a description of the Time to Live (TTL) status on the specified table.

", "DisableKinesisStreamingDestination": "

Stops replication from the DynamoDB table to the Kinesis data stream. This is done without deleting either of the resources.

", "EnableKinesisStreamingDestination": "

Starts table data replication to the specified Kinesis data stream at a timestamp chosen during the enable workflow. If this operation doesn't return results immediately, use DescribeKinesisStreamingDestination to check if streaming to the Kinesis data stream is ACTIVE.

", - "ExecuteStatement": "

This operation allows you to perform reads and singleton writes on data stored in DynamoDB, using PartiQL.

", + "ExecuteStatement": "

This operation allows you to perform reads and singleton writes on data stored in DynamoDB, using PartiQL.

For PartiQL reads (SELECT statement), if the total number of processed items exceeds the maximum dataset size limit of 1 MB, the read stops and results are returned to the user as a LastEvaluatedKey value to continue the read in a subsequent operation. If the filter criteria in WHERE clause does not match any data, the read will return an empty result set.

A single SELECT statement response can return up to the maximum number of items (if using the Limit parameter) or a maximum of 1 MB of data (and then apply any filtering to the results using WHERE clause). If LastEvaluatedKey is present in the response, you need to paginate the result set.

", "ExecuteTransaction": "

This operation allows you to perform transactional reads or writes on data stored in DynamoDB, using PartiQL.

The entire transaction must consist of either read statements or write statements, you cannot mix both in one transaction. The EXISTS function is an exception and can be used to check the condition of specific attributes of the item in a similar manner to ConditionCheck in the TransactWriteItems API.

", "ExportTableToPointInTime": "

Exports table data to an S3 bucket. The table must have point in time recovery enabled, and you can export data from any time within the point in time recovery window.

", "GetItem": "

The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data and there will be no Item element in the response.

GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value.

", @@ -1483,6 +1483,7 @@ "Delete$Key": "

The primary key of the item to be deleted. Each element consists of an attribute name and a value for that attribute.

", "DeleteItemInput$Key": "

A map of attribute names to AttributeValue objects, representing the primary key of the item to delete.

For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.

", "DeleteRequest$Key": "

A map of attribute name to attribute values, representing the primary key of the item to delete. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema.

", + "ExecuteStatementOutput$LastEvaluatedKey": "

The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If LastEvaluatedKey is empty, then the \"last page\" of results has been processed and there is no more data to be retrieved. If LastEvaluatedKey is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when LastEvaluatedKey is empty.

", "Get$Key": "

A map of attribute names to AttributeValue objects that specifies the primary key of the item to retrieve.

", "GetItemInput$Key": "

A map of attribute names to AttributeValue objects, representing the primary key of the item to retrieve.

For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.

", "KeyList$member": null, @@ -1840,6 +1841,7 @@ "PositiveIntegerObject": { "base": null, "refs": { + "ExecuteStatementInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, along with a key in LastEvaluatedKey to apply in a subsequent operation so you can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation.

", "ListGlobalTablesInput$Limit": "

The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.

If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the LastEvaluatedGlobalTableName to apply in a subsequent operation to the ExclusiveStartGlobalTableName parameter.

", "QueryInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Query and Scan in the Amazon DynamoDB Developer Guide.

", "ScanInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Working with Queries in the Amazon DynamoDB Developer Guide.

" diff --git a/apis/imagebuilder/2019-12-02/api-2.json b/apis/imagebuilder/2019-12-02/api-2.json index e55da2d1515..6072a1fde57 100644 --- a/apis/imagebuilder/2019-12-02/api-2.json +++ b/apis/imagebuilder/2019-12-02/api-2.json @@ -1642,7 +1642,8 @@ "containerDistributionConfiguration":{"shape":"ContainerDistributionConfiguration"}, "licenseConfigurationArns":{"shape":"LicenseConfigurationArnList"}, "launchTemplateConfigurations":{"shape":"LaunchTemplateConfigurationList"}, - "s3ExportConfiguration":{"shape":"S3ExportConfiguration"} + "s3ExportConfiguration":{"shape":"S3ExportConfiguration"}, + "fastLaunchConfigurations":{"shape":"FastLaunchConfigurationList"} } }, "DistributionConfiguration":{ @@ -1735,6 +1736,37 @@ "min":0 }, "ErrorMessage":{"type":"string"}, + "FastLaunchConfiguration":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{"shape":"Boolean"}, + "snapshotConfiguration":{"shape":"FastLaunchSnapshotConfiguration"}, + "maxParallelLaunches":{"shape":"MaxParallelLaunches"}, + "launchTemplate":{"shape":"FastLaunchLaunchTemplateSpecification"}, + "accountId":{"shape":"AccountId"} + } + }, + "FastLaunchConfigurationList":{ + "type":"list", + "member":{"shape":"FastLaunchConfiguration"}, + "max":1000, + "min":1 + }, + "FastLaunchLaunchTemplateSpecification":{ + "type":"structure", + "members":{ + "launchTemplateId":{"shape":"LaunchTemplateId"}, + "launchTemplateName":{"shape":"NonEmptyString"}, + "launchTemplateVersion":{"shape":"NonEmptyString"} + } + }, + "FastLaunchSnapshotConfiguration":{ + "type":"structure", + "members":{ + "targetResourceCount":{"shape":"TargetResourceCount"} + } + }, "Filter":{ "type":"structure", "members":{ @@ -2677,6 +2709,11 @@ "s3Logs":{"shape":"S3Logs"} } }, + "MaxParallelLaunches":{ + "type":"integer", + "max":10000, + "min":1 + }, "NonEmptyString":{ "type":"string", "max":1024, @@ -3030,6 +3067,11 @@ "repositoryName":{"shape":"NonEmptyString"} } }, + "TargetResourceCount":{ + "type":"integer", + "max":10000, + "min":1 + }, "Timezone":{ "type":"string", "max":100, diff --git a/apis/imagebuilder/2019-12-02/docs-2.json b/apis/imagebuilder/2019-12-02/docs-2.json index b2cb6d7a2ba..bf0699e3140 100644 --- a/apis/imagebuilder/2019-12-02/docs-2.json +++ b/apis/imagebuilder/2019-12-02/docs-2.json @@ -3,7 +3,7 @@ "service": "

EC2 Image Builder is a fully managed Amazon Web Services service that makes it easier to automate the creation, management, and deployment of customized, secure, and up-to-date \"golden\" server images that are pre-installed and pre-configured with software and settings to meet specific IT standards.

", "operations": { "CancelImageCreation": "

CancelImageCreation cancels the creation of Image. This operation can only be used on images in a non-terminal state.

", - "CreateComponent": "

Creates a new component that can be used to build, validate, test, and assess your image.

", + "CreateComponent": "

Creates a new component that can be used to build, validate, test, and assess your image. The component is based on a YAML document that you specify using exactly one of the following methods:

", "CreateContainerRecipe": "

Creates a new container recipe. Container recipes define how images are configured, tested, and assessed.

", "CreateDistributionConfiguration": "

Creates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

", "CreateImage": "

Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.

", @@ -58,6 +58,7 @@ "base": null, "refs": { "AccountList$member": null, + "FastLaunchConfiguration$accountId": "

The owner account ID for the fast-launch enabled Windows AMI.

", "LaunchTemplateConfiguration$accountId": "

The account ID that this configuration applies to.

" } }, @@ -113,6 +114,7 @@ "Boolean": { "base": null, "refs": { + "FastLaunchConfiguration$enabled": "

A Boolean that represents the current state of faster launching for the Windows AMI. Set to true to start using Windows faster launching, or false to stop using it.

", "LaunchTemplateConfiguration$setDefaultVersion": "

Set the specified Amazon EC2 launch template as the default launch template for the specified account.

", "ListComponentsRequest$byName": "

Returns the list of component build versions for the specified name.

", "ListImagesRequest$byName": "

Requests a list of images with a specific recipe name.

" @@ -215,7 +217,7 @@ "ComponentData": { "base": null, "refs": { - "Component$data": "

The data of the component.

" + "Component$data": "

Component data contains the YAML document content for the component.

" } }, "ComponentFormat": { @@ -695,6 +697,30 @@ "ServiceUnavailableException$message": null } }, + "FastLaunchConfiguration": { + "base": "

Define and configure faster launching for output Windows AMIs.

", + "refs": { + "FastLaunchConfigurationList$member": null + } + }, + "FastLaunchConfigurationList": { + "base": null, + "refs": { + "Distribution$fastLaunchConfigurations": "

The Windows faster-launching configurations to use for AMI distribution.

" + } + }, + "FastLaunchLaunchTemplateSpecification": { + "base": "

Identifies the launch template that the associated Windows AMI uses for launching an instance when faster launching is enabled.

You can specify either the launchTemplateName or the launchTemplateId, but not both.

", + "refs": { + "FastLaunchConfiguration$launchTemplate": "

The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots.

" + } + }, + "FastLaunchSnapshotConfiguration": { + "base": "

Configuration settings for creating and managing pre-provisioned snapshots for a fast-launch enabled Windows AMI.

", + "refs": { + "FastLaunchConfiguration$snapshotConfiguration": "

Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled.

" + } + }, "Filter": { "base": "

A filter name and value pair that is used to return a more specific list of results from a list operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

", "refs": { @@ -1113,7 +1139,7 @@ "InlineComponentData": { "base": null, "refs": { - "CreateComponentRequest$data": "

The data of the component. Used to specify the data inline. Either data or uri can be used to specify the data within the component.

" + "CreateComponentRequest$data": "

Component data contains inline YAML document content for the component. Alternatively, you can specify the uri of a YAML document file stored in Amazon S3. However, you cannot specify both properties.

" } }, "InlineDockerFileTemplate": { @@ -1226,6 +1252,7 @@ "LaunchTemplateId": { "base": null, "refs": { + "FastLaunchLaunchTemplateSpecification$launchTemplateId": "

The ID of the launch template to use for faster launching for a Windows AMI.

", "LaunchTemplateConfiguration$launchTemplateId": "

Identifies the Amazon EC2 launch template to use.

" } }, @@ -1369,6 +1396,12 @@ "UpdateInfrastructureConfigurationRequest$logging": "

The logging configuration of the infrastructure configuration.

" } }, + "MaxParallelLaunches": { + "base": null, + "refs": { + "FastLaunchConfiguration$maxParallelLaunches": "

The maximum number of parallel instances that are launched for creating resources.

" + } + }, "NonEmptyString": { "base": null, "refs": { @@ -1434,6 +1467,8 @@ "DistributionConfigurationSummary$description": "

The description of the distribution configuration.

", "EbsInstanceBlockDeviceSpecification$kmsKeyId": "

Use to configure the KMS key to use when encrypting the device.

", "EbsInstanceBlockDeviceSpecification$snapshotId": "

The snapshot that defines the device contents.

", + "FastLaunchLaunchTemplateSpecification$launchTemplateName": "

The name of the launch template to use for faster launching for a Windows AMI.

", + "FastLaunchLaunchTemplateSpecification$launchTemplateVersion": "

The version of the launch template to use for faster launching for a Windows AMI.

", "GetComponentPolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", "GetComponentResponse$requestId": "

The request ID that uniquely identifies this request.

", "GetContainerRecipePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", @@ -1925,6 +1960,12 @@ "CreateContainerRecipeRequest$targetRepository": "

The destination repository for the container image.

" } }, + "TargetResourceCount": { + "base": null, + "refs": { + "FastLaunchSnapshotConfiguration$targetResourceCount": "

The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.

" + } + }, "Timezone": { "base": null, "refs": { @@ -1974,7 +2015,7 @@ "Uri": { "base": null, "refs": { - "CreateComponentRequest$uri": "

The uri of the component. Must be an Amazon S3 URL and the requester must have permission to access the Amazon S3 bucket. If you use Amazon S3, you can specify component content up to your service quota. Either data or uri can be used to specify the data within the component.

", + "CreateComponentRequest$uri": "

The uri of a YAML component document file. This must be an S3 URL (s3://bucket/key), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota.

Alternatively, you can specify the YAML document inline, using the component data property. You cannot specify both properties.

", "CreateContainerRecipeRequest$dockerfileTemplateUri": "

The Amazon S3 URI for the Dockerfile that will be used to build your container image.

", "ImportComponentRequest$uri": "

The uri of the component. Must be an Amazon S3 URL and the requester must have permission to access the Amazon S3 bucket. If you use Amazon S3, you can specify component content up to your service quota. Either data or uri can be used to specify the data within the component.

" } @@ -1982,7 +2023,7 @@ "UserDataOverride": { "base": null, "refs": { - "AdditionalInstanceConfiguration$userDataOverride": "

Use this property to provide commands or a command script to run when you launch your build instance.

The userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre-installed on your base image.

" + "AdditionalInstanceConfiguration$userDataOverride": "

Use this property to provide commands or a command script to run when you launch your build instance.

The userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre-installed on your base image.

The user data is always base 64 encoded. For example, the following commands are encoded as IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

#!/bin/bash

mkdir -p /var/bb/

touch /var

" } }, "VersionNumber": { diff --git a/gems/aws-partitions/CHANGELOG.md b/gems/aws-partitions/CHANGELOG.md index 48ea3d14e5a..f34713809a4 100644 --- a/gems/aws-partitions/CHANGELOG.md +++ b/gems/aws-partitions/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.556.0 (2022-02-21) +------------------ + +* Feature - Updated the partitions source data the determines the AWS service regions and endpoints. + 1.555.0 (2022-02-17) ------------------ diff --git a/gems/aws-partitions/VERSION b/gems/aws-partitions/VERSION index 688de053280..484c0965ebb 100644 --- a/gems/aws-partitions/VERSION +++ b/gems/aws-partitions/VERSION @@ -1 +1 @@ -1.555.0 +1.556.0 diff --git a/gems/aws-partitions/partitions.json b/gems/aws-partitions/partitions.json index 2c6f89af087..0a39cea96ed 100644 --- a/gems/aws-partitions/partitions.json +++ b/gems/aws-partitions/partitions.json @@ -7888,6 +7888,7 @@ }, "mq" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, diff --git a/gems/aws-sdk-customerprofiles/CHANGELOG.md b/gems/aws-sdk-customerprofiles/CHANGELOG.md index 392a3ac8f9f..25285cd5d04 100644 --- a/gems/aws-sdk-customerprofiles/CHANGELOG.md +++ b/gems/aws-sdk-customerprofiles/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.19.0 (2022-02-21) +------------------ + +* Feature - This release introduces apis CreateIntegrationWorkflow, DeleteWorkflow, ListWorkflows, GetWorkflow and GetWorkflowSteps. These apis are used to manage and view integration workflows. + 1.18.0 (2022-02-03) ------------------ diff --git a/gems/aws-sdk-customerprofiles/VERSION b/gems/aws-sdk-customerprofiles/VERSION index 84cc529467b..815d5ca06d5 100644 --- a/gems/aws-sdk-customerprofiles/VERSION +++ b/gems/aws-sdk-customerprofiles/VERSION @@ -1 +1 @@ -1.18.0 +1.19.0 diff --git a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles.rb b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles.rb index a740f4f0c23..37519f17036 100644 --- a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles.rb +++ b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles.rb @@ -48,6 +48,6 @@ # @!group service module Aws::CustomerProfiles - GEM_VERSION = '1.18.0' + GEM_VERSION = '1.19.0' end diff --git a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client.rb b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client.rb index 59b1b62e629..3d3d1db0ff5 100644 --- a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client.rb +++ b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client.rb @@ -534,6 +534,136 @@ def create_domain(params = {}, options = {}) req.send_request(options) end + # Creates an integration workflow. An integration workflow is an async + # process which ingests historic data and sets up an integration for + # ongoing updates. The supported Amazon AppFlow sources are Salesforce, + # ServiceNow, and Marketo. + # + # @option params [required, String] :domain_name + # The unique name of the domain. + # + # @option params [required, String] :workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # + # @option params [required, Types::IntegrationConfig] :integration_config + # Configuration data for integration workflow. + # + # @option params [required, String] :object_type_name + # The name of the profile object type. + # + # @option params [required, String] :role_arn + # The Amazon Resource Name (ARN) of the IAM role. Customer Profiles + # assumes this role to create resources on your behalf as part of + # workflow execution. + # + # @option params [Hash] :tags + # The tags used to organize, track, or control access for this resource. + # + # @return [Types::CreateIntegrationWorkflowResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateIntegrationWorkflowResponse#workflow_id #workflow_id} => String + # * {Types::CreateIntegrationWorkflowResponse#message #message} => String + # + # @example Request syntax with placeholder values + # + # resp = client.create_integration_workflow({ + # domain_name: "name", # required + # workflow_type: "APPFLOW_INTEGRATION", # required, accepts APPFLOW_INTEGRATION + # integration_config: { # required + # appflow_integration: { + # flow_definition: { # required + # description: "FlowDescription", + # flow_name: "FlowName", # required + # kms_arn: "KmsArn", # required + # source_flow_config: { # required + # connector_profile_name: "ConnectorProfileName", + # connector_type: "Salesforce", # required, accepts Salesforce, Marketo, Zendesk, Servicenow, S3 + # incremental_pull_config: { + # datetime_type_field_name: "DatetimeTypeFieldName", + # }, + # source_connector_properties: { # required + # marketo: { + # object: "Object", # required + # }, + # s3: { + # bucket_name: "BucketName", # required + # bucket_prefix: "BucketPrefix", + # }, + # salesforce: { + # object: "Object", # required + # enable_dynamic_field_update: false, + # include_deleted_records: false, + # }, + # service_now: { + # object: "Object", # required + # }, + # zendesk: { + # object: "Object", # required + # }, + # }, + # }, + # tasks: [ # required + # { + # connector_operator: { + # marketo: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # s3: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # salesforce: "PROJECTION", # accepts PROJECTION, LESS_THAN, CONTAINS, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # service_now: "PROJECTION", # accepts PROJECTION, CONTAINS, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # zendesk: "PROJECTION", # accepts PROJECTION, GREATER_THAN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # }, + # destination_field: "DestinationField", + # source_fields: ["stringTo2048"], # required + # task_properties: { + # "VALUE" => "Property", + # }, + # task_type: "Arithmetic", # required, accepts Arithmetic, Filter, Map, Mask, Merge, Truncate, Validate + # }, + # ], + # trigger_config: { # required + # trigger_type: "Scheduled", # required, accepts Scheduled, Event, OnDemand + # trigger_properties: { + # scheduled: { + # schedule_expression: "ScheduleExpression", # required + # data_pull_mode: "Incremental", # accepts Incremental, Complete + # schedule_start_time: Time.now, + # schedule_end_time: Time.now, + # timezone: "Timezone", + # schedule_offset: 1, + # first_execution_from: Time.now, + # }, + # }, + # }, + # }, + # batches: [ + # { + # start_time: Time.now, # required + # end_time: Time.now, # required + # }, + # ], + # }, + # }, + # object_type_name: "typeName", # required + # role_arn: "RoleArn", # required + # tags: { + # "TagKey" => "TagValue", + # }, + # }) + # + # @example Response structure + # + # resp.workflow_id #=> String + # resp.message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateIntegrationWorkflow AWS API Documentation + # + # @overload create_integration_workflow(params = {}) + # @param [Hash] params ({}) + def create_integration_workflow(params = {}, options = {}) + req = build_request(:create_integration_workflow, params) + req.send_request(options) + end + # Creates a standard profile. # # A standard profile represents the following attributes for a customer @@ -909,6 +1039,33 @@ def delete_profile_object_type(params = {}, options = {}) req.send_request(options) end + # Deletes the specified workflow and all its corresponding resources. + # This is an async process. + # + # @option params [required, String] :domain_name + # The unique name of the domain. + # + # @option params [required, String] :workflow_id + # Unique identifier for the workflow. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_workflow({ + # domain_name: "name", # required + # workflow_id: "string1To255", # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteWorkflow AWS API Documentation + # + # @overload delete_workflow(params = {}) + # @param [Hash] params ({}) + def delete_workflow(params = {}, options = {}) + req = build_request(:delete_workflow, params) + req.send_request(options) + end + # Tests the auto-merging settings of your Identity Resolution Job # without merging your data. It randomly selects a sample of matching # groups from the existing matching results, and applies the automerging @@ -1118,6 +1275,7 @@ def get_identity_resolution_job(params = {}, options = {}) # * {Types::GetIntegrationResponse#last_updated_at #last_updated_at} => Time # * {Types::GetIntegrationResponse#tags #tags} => Hash<String,String> # * {Types::GetIntegrationResponse#object_type_names #object_type_names} => Hash<String,String> + # * {Types::GetIntegrationResponse#workflow_id #workflow_id} => String # # @example Request syntax with placeholder values # @@ -1137,6 +1295,7 @@ def get_identity_resolution_job(params = {}, options = {}) # resp.tags["TagKey"] #=> String # resp.object_type_names #=> Hash # resp.object_type_names["string1To255"] #=> String + # resp.workflow_id #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegration AWS API Documentation # @@ -1183,8 +1342,6 @@ def get_integration(params = {}, options = {}) # # * FullName # - # * BusinessName - # # For example, two or more profiles—with spelling mistakes such as # **John Doe** and **Jhn Doe**, or different casing email addresses such # as **JOHN\_DOE@ANYCOMPANY.COM** and **johndoe@anycompany.com**, or @@ -1361,6 +1518,112 @@ def get_profile_object_type_template(params = {}, options = {}) req.send_request(options) end + # Get details of specified workflow. + # + # @option params [required, String] :domain_name + # The unique name of the domain. + # + # @option params [required, String] :workflow_id + # Unique identifier for the workflow. + # + # @return [Types::GetWorkflowResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetWorkflowResponse#workflow_id #workflow_id} => String + # * {Types::GetWorkflowResponse#workflow_type #workflow_type} => String + # * {Types::GetWorkflowResponse#status #status} => String + # * {Types::GetWorkflowResponse#error_description #error_description} => String + # * {Types::GetWorkflowResponse#start_date #start_date} => Time + # * {Types::GetWorkflowResponse#last_updated_at #last_updated_at} => Time + # * {Types::GetWorkflowResponse#attributes #attributes} => Types::WorkflowAttributes + # * {Types::GetWorkflowResponse#metrics #metrics} => Types::WorkflowMetrics + # + # @example Request syntax with placeholder values + # + # resp = client.get_workflow({ + # domain_name: "name", # required + # workflow_id: "uuid", # required + # }) + # + # @example Response structure + # + # resp.workflow_id #=> String + # resp.workflow_type #=> String, one of "APPFLOW_INTEGRATION" + # resp.status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "FAILED", "SPLIT", "RETRY", "CANCELLED" + # resp.error_description #=> String + # resp.start_date #=> Time + # resp.last_updated_at #=> Time + # resp.attributes.appflow_integration.source_connector_type #=> String, one of "Salesforce", "Marketo", "Zendesk", "Servicenow", "S3" + # resp.attributes.appflow_integration.connector_profile_name #=> String + # resp.attributes.appflow_integration.role_arn #=> String + # resp.metrics.appflow_integration.records_processed #=> Integer + # resp.metrics.appflow_integration.steps_completed #=> Integer + # resp.metrics.appflow_integration.total_steps #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflow AWS API Documentation + # + # @overload get_workflow(params = {}) + # @param [Hash] params ({}) + def get_workflow(params = {}, options = {}) + req = build_request(:get_workflow, params) + req.send_request(options) + end + + # Get granular list of steps in workflow. + # + # @option params [required, String] :domain_name + # The unique name of the domain. + # + # @option params [required, String] :workflow_id + # Unique identifier for the workflow. + # + # @option params [String] :next_token + # The token for the next set of results. Use the value returned in the + # previous response in the next request to retrieve the next set of + # results. + # + # @option params [Integer] :max_results + # The maximum number of results to return per page. + # + # @return [Types::GetWorkflowStepsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetWorkflowStepsResponse#workflow_id #workflow_id} => String + # * {Types::GetWorkflowStepsResponse#workflow_type #workflow_type} => String + # * {Types::GetWorkflowStepsResponse#items #items} => Array<Types::WorkflowStepItem> + # * {Types::GetWorkflowStepsResponse#next_token #next_token} => String + # + # @example Request syntax with placeholder values + # + # resp = client.get_workflow_steps({ + # domain_name: "name", # required + # workflow_id: "uuid", # required + # next_token: "token", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.workflow_id #=> String + # resp.workflow_type #=> String, one of "APPFLOW_INTEGRATION" + # resp.items #=> Array + # resp.items[0].appflow_integration.flow_name #=> String + # resp.items[0].appflow_integration.status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "FAILED", "SPLIT", "RETRY", "CANCELLED" + # resp.items[0].appflow_integration.execution_message #=> String + # resp.items[0].appflow_integration.records_processed #=> Integer + # resp.items[0].appflow_integration.batch_records_start_time #=> String + # resp.items[0].appflow_integration.batch_records_end_time #=> String + # resp.items[0].appflow_integration.created_at #=> Time + # resp.items[0].appflow_integration.last_updated_at #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflowSteps AWS API Documentation + # + # @overload get_workflow_steps(params = {}) + # @param [Hash] params ({}) + def get_workflow_steps(params = {}, options = {}) + req = build_request(:get_workflow_steps, params) + req.send_request(options) + end + # Lists all of the integrations associated to a specific URI in the AWS # account. # @@ -1374,6 +1637,10 @@ def get_profile_object_type_template(params = {}, options = {}) # @option params [Integer] :max_results # The maximum number of objects returned per page. # + # @option params [Boolean] :include_hidden + # Boolean to indicate if hidden integration should be returned. Defaults + # to `False`. + # # @return [Types::ListAccountIntegrationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListAccountIntegrationsResponse#items #items} => Array<Types::ListIntegrationItem> @@ -1385,6 +1652,7 @@ def get_profile_object_type_template(params = {}, options = {}) # uri: "string1To255", # required # next_token: "token", # max_results: 1, + # include_hidden: false, # }) # # @example Response structure @@ -1399,6 +1667,7 @@ def get_profile_object_type_template(params = {}, options = {}) # resp.items[0].tags["TagKey"] #=> String # resp.items[0].object_type_names #=> Hash # resp.items[0].object_type_names["string1To255"] #=> String + # resp.items[0].workflow_id #=> String # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrations AWS API Documentation @@ -1513,6 +1782,10 @@ def list_identity_resolution_jobs(params = {}, options = {}) # @option params [Integer] :max_results # The maximum number of objects returned per page. # + # @option params [Boolean] :include_hidden + # Boolean to indicate if hidden integration should be returned. Defaults + # to `False`. + # # @return [Types::ListIntegrationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListIntegrationsResponse#items #items} => Array<Types::ListIntegrationItem> @@ -1524,6 +1797,7 @@ def list_identity_resolution_jobs(params = {}, options = {}) # domain_name: "name", # required # next_token: "token", # max_results: 1, + # include_hidden: false, # }) # # @example Response structure @@ -1538,6 +1812,7 @@ def list_identity_resolution_jobs(params = {}, options = {}) # resp.items[0].tags["TagKey"] #=> String # resp.items[0].object_type_names #=> Hash # resp.items[0].object_type_names["string1To255"] #=> String + # resp.items[0].workflow_id #=> String # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrations AWS API Documentation @@ -1721,6 +1996,69 @@ def list_tags_for_resource(params = {}, options = {}) req.send_request(options) end + # Query to list all workflows. + # + # @option params [required, String] :domain_name + # The unique name of the domain. + # + # @option params [String] :workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # + # @option params [String] :status + # Status of workflow execution. + # + # @option params [Time,DateTime,Date,Integer,String] :query_start_date + # Retrieve workflows started after timestamp. + # + # @option params [Time,DateTime,Date,Integer,String] :query_end_date + # Retrieve workflows ended after timestamp. + # + # @option params [String] :next_token + # The token for the next set of results. Use the value returned in the + # previous response in the next request to retrieve the next set of + # results. + # + # @option params [Integer] :max_results + # The maximum number of results to return per page. + # + # @return [Types::ListWorkflowsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListWorkflowsResponse#items #items} => Array<Types::ListWorkflowsItem> + # * {Types::ListWorkflowsResponse#next_token #next_token} => String + # + # @example Request syntax with placeholder values + # + # resp = client.list_workflows({ + # domain_name: "name", # required + # workflow_type: "APPFLOW_INTEGRATION", # accepts APPFLOW_INTEGRATION + # status: "NOT_STARTED", # accepts NOT_STARTED, IN_PROGRESS, COMPLETE, FAILED, SPLIT, RETRY, CANCELLED + # query_start_date: Time.now, + # query_end_date: Time.now, + # next_token: "token", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.items #=> Array + # resp.items[0].workflow_type #=> String, one of "APPFLOW_INTEGRATION" + # resp.items[0].workflow_id #=> String + # resp.items[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "FAILED", "SPLIT", "RETRY", "CANCELLED" + # resp.items[0].status_description #=> String + # resp.items[0].created_at #=> Time + # resp.items[0].last_updated_at #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListWorkflows AWS API Documentation + # + # @overload list_workflows(params = {}) + # @param [Hash] params ({}) + def list_workflows(params = {}, options = {}) + req = build_request(:list_workflows, params) + req.send_request(options) + end + # Runs an AWS Lambda job that does the following: # # 1. All the profileKeys in the `ProfileToBeMerged` will be moved to @@ -1860,6 +2198,7 @@ def merge_profiles(params = {}, options = {}) # * {Types::PutIntegrationResponse#last_updated_at #last_updated_at} => Time # * {Types::PutIntegrationResponse#tags #tags} => Hash<String,String> # * {Types::PutIntegrationResponse#object_type_names #object_type_names} => Hash<String,String> + # * {Types::PutIntegrationResponse#workflow_id #workflow_id} => String # # @example Request syntax with placeholder values # @@ -1949,6 +2288,7 @@ def merge_profiles(params = {}, options = {}) # resp.tags["TagKey"] #=> String # resp.object_type_names #=> Hash # resp.object_type_names["string1To255"] #=> String + # resp.workflow_id #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration AWS API Documentation # @@ -2632,7 +2972,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-customerprofiles' - context[:gem_version] = '1.18.0' + context[:gem_version] = '1.19.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client_api.rb b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client_api.rb index 0a4e1a7ee5f..2a6d35350f4 100644 --- a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client_api.rb +++ b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/client_api.rb @@ -17,10 +17,16 @@ module ClientApi AddProfileKeyRequest = Shapes::StructureShape.new(name: 'AddProfileKeyRequest') AddProfileKeyResponse = Shapes::StructureShape.new(name: 'AddProfileKeyResponse') Address = Shapes::StructureShape.new(name: 'Address') + AppflowIntegration = Shapes::StructureShape.new(name: 'AppflowIntegration') + AppflowIntegrationWorkflowAttributes = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowAttributes') + AppflowIntegrationWorkflowMetrics = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowMetrics') + AppflowIntegrationWorkflowStep = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowStep') AttributeSourceIdMap = Shapes::MapShape.new(name: 'AttributeSourceIdMap') Attributes = Shapes::MapShape.new(name: 'Attributes') AutoMerging = Shapes::StructureShape.new(name: 'AutoMerging') BadRequestException = Shapes::StructureShape.new(name: 'BadRequestException') + Batch = Shapes::StructureShape.new(name: 'Batch') + Batches = Shapes::ListShape.new(name: 'Batches') BucketName = Shapes::StringShape.new(name: 'BucketName') BucketPrefix = Shapes::StringShape.new(name: 'BucketPrefix') ConflictResolution = Shapes::StructureShape.new(name: 'ConflictResolution') @@ -30,6 +36,8 @@ module ClientApi Consolidation = Shapes::StructureShape.new(name: 'Consolidation') CreateDomainRequest = Shapes::StructureShape.new(name: 'CreateDomainRequest') CreateDomainResponse = Shapes::StructureShape.new(name: 'CreateDomainResponse') + CreateIntegrationWorkflowRequest = Shapes::StructureShape.new(name: 'CreateIntegrationWorkflowRequest') + CreateIntegrationWorkflowResponse = Shapes::StructureShape.new(name: 'CreateIntegrationWorkflowResponse') CreateProfileRequest = Shapes::StructureShape.new(name: 'CreateProfileRequest') CreateProfileResponse = Shapes::StructureShape.new(name: 'CreateProfileResponse') DataPullMode = Shapes::StringShape.new(name: 'DataPullMode') @@ -47,6 +55,8 @@ module ClientApi DeleteProfileObjectTypeResponse = Shapes::StructureShape.new(name: 'DeleteProfileObjectTypeResponse') DeleteProfileRequest = Shapes::StructureShape.new(name: 'DeleteProfileRequest') DeleteProfileResponse = Shapes::StructureShape.new(name: 'DeleteProfileResponse') + DeleteWorkflowRequest = Shapes::StructureShape.new(name: 'DeleteWorkflowRequest') + DeleteWorkflowResponse = Shapes::StructureShape.new(name: 'DeleteWorkflowResponse') DestinationField = Shapes::StringShape.new(name: 'DestinationField') DomainList = Shapes::ListShape.new(name: 'DomainList') DomainStats = Shapes::StructureShape.new(name: 'DomainStats') @@ -75,10 +85,15 @@ module ClientApi GetProfileObjectTypeResponse = Shapes::StructureShape.new(name: 'GetProfileObjectTypeResponse') GetProfileObjectTypeTemplateRequest = Shapes::StructureShape.new(name: 'GetProfileObjectTypeTemplateRequest') GetProfileObjectTypeTemplateResponse = Shapes::StructureShape.new(name: 'GetProfileObjectTypeTemplateResponse') + GetWorkflowRequest = Shapes::StructureShape.new(name: 'GetWorkflowRequest') + GetWorkflowResponse = Shapes::StructureShape.new(name: 'GetWorkflowResponse') + GetWorkflowStepsRequest = Shapes::StructureShape.new(name: 'GetWorkflowStepsRequest') + GetWorkflowStepsResponse = Shapes::StructureShape.new(name: 'GetWorkflowStepsResponse') IdentityResolutionJob = Shapes::StructureShape.new(name: 'IdentityResolutionJob') IdentityResolutionJobStatus = Shapes::StringShape.new(name: 'IdentityResolutionJobStatus') IdentityResolutionJobsList = Shapes::ListShape.new(name: 'IdentityResolutionJobsList') IncrementalPullConfig = Shapes::StructureShape.new(name: 'IncrementalPullConfig') + IntegrationConfig = Shapes::StructureShape.new(name: 'IntegrationConfig') IntegrationList = Shapes::ListShape.new(name: 'IntegrationList') InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException') JobSchedule = Shapes::StructureShape.new(name: 'JobSchedule') @@ -108,6 +123,9 @@ module ClientApi ListProfileObjectsResponse = Shapes::StructureShape.new(name: 'ListProfileObjectsResponse') ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse') + ListWorkflowsItem = Shapes::StructureShape.new(name: 'ListWorkflowsItem') + ListWorkflowsRequest = Shapes::StructureShape.new(name: 'ListWorkflowsRequest') + ListWorkflowsResponse = Shapes::StructureShape.new(name: 'ListWorkflowsResponse') MarketoConnectorOperator = Shapes::StringShape.new(name: 'MarketoConnectorOperator') MarketoSourceProperties = Shapes::StructureShape.new(name: 'MarketoSourceProperties') MatchItem = Shapes::StructureShape.new(name: 'MatchItem') @@ -141,6 +159,7 @@ module ClientApi PutProfileObjectTypeRequest = Shapes::StructureShape.new(name: 'PutProfileObjectTypeRequest') PutProfileObjectTypeResponse = Shapes::StructureShape.new(name: 'PutProfileObjectTypeResponse') ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') + RoleArn = Shapes::StringShape.new(name: 'RoleArn') S3ConnectorOperator = Shapes::StringShape.new(name: 'S3ConnectorOperator') S3ExportingConfig = Shapes::StructureShape.new(name: 'S3ExportingConfig') S3ExportingLocation = Shapes::StructureShape.new(name: 'S3ExportingLocation') @@ -160,6 +179,7 @@ module ClientApi SourceFlowConfig = Shapes::StructureShape.new(name: 'SourceFlowConfig') StandardIdentifier = Shapes::StringShape.new(name: 'StandardIdentifier') StandardIdentifierList = Shapes::ListShape.new(name: 'StandardIdentifierList') + Status = Shapes::StringShape.new(name: 'Status') TagArn = Shapes::StringShape.new(name: 'TagArn') TagKey = Shapes::StringShape.new(name: 'TagKey') TagKeyList = Shapes::ListShape.new(name: 'TagKeyList') @@ -184,6 +204,12 @@ module ClientApi UpdateDomainResponse = Shapes::StructureShape.new(name: 'UpdateDomainResponse') UpdateProfileRequest = Shapes::StructureShape.new(name: 'UpdateProfileRequest') UpdateProfileResponse = Shapes::StructureShape.new(name: 'UpdateProfileResponse') + WorkflowAttributes = Shapes::StructureShape.new(name: 'WorkflowAttributes') + WorkflowList = Shapes::ListShape.new(name: 'WorkflowList') + WorkflowMetrics = Shapes::StructureShape.new(name: 'WorkflowMetrics') + WorkflowStepItem = Shapes::StructureShape.new(name: 'WorkflowStepItem') + WorkflowStepsList = Shapes::ListShape.new(name: 'WorkflowStepsList') + WorkflowType = Shapes::StringShape.new(name: 'WorkflowType') ZendeskConnectorOperator = Shapes::StringShape.new(name: 'ZendeskConnectorOperator') ZendeskSourceProperties = Shapes::StructureShape.new(name: 'ZendeskSourceProperties') boolean = Shapes::BooleanShape.new(name: 'boolean') @@ -237,6 +263,30 @@ module ClientApi Address.add_member(:postal_code, Shapes::ShapeRef.new(shape: string1To255, location_name: "PostalCode")) Address.struct_class = Types::Address + AppflowIntegration.add_member(:flow_definition, Shapes::ShapeRef.new(shape: FlowDefinition, required: true, location_name: "FlowDefinition")) + AppflowIntegration.add_member(:batches, Shapes::ShapeRef.new(shape: Batches, location_name: "Batches")) + AppflowIntegration.struct_class = Types::AppflowIntegration + + AppflowIntegrationWorkflowAttributes.add_member(:source_connector_type, Shapes::ShapeRef.new(shape: SourceConnectorType, required: true, location_name: "SourceConnectorType")) + AppflowIntegrationWorkflowAttributes.add_member(:connector_profile_name, Shapes::ShapeRef.new(shape: ConnectorProfileName, required: true, location_name: "ConnectorProfileName")) + AppflowIntegrationWorkflowAttributes.add_member(:role_arn, Shapes::ShapeRef.new(shape: string1To255, location_name: "RoleArn")) + AppflowIntegrationWorkflowAttributes.struct_class = Types::AppflowIntegrationWorkflowAttributes + + AppflowIntegrationWorkflowMetrics.add_member(:records_processed, Shapes::ShapeRef.new(shape: long, required: true, location_name: "RecordsProcessed")) + AppflowIntegrationWorkflowMetrics.add_member(:steps_completed, Shapes::ShapeRef.new(shape: long, required: true, location_name: "StepsCompleted")) + AppflowIntegrationWorkflowMetrics.add_member(:total_steps, Shapes::ShapeRef.new(shape: long, required: true, location_name: "TotalSteps")) + AppflowIntegrationWorkflowMetrics.struct_class = Types::AppflowIntegrationWorkflowMetrics + + AppflowIntegrationWorkflowStep.add_member(:flow_name, Shapes::ShapeRef.new(shape: FlowName, required: true, location_name: "FlowName")) + AppflowIntegrationWorkflowStep.add_member(:status, Shapes::ShapeRef.new(shape: Status, required: true, location_name: "Status")) + AppflowIntegrationWorkflowStep.add_member(:execution_message, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "ExecutionMessage")) + AppflowIntegrationWorkflowStep.add_member(:records_processed, Shapes::ShapeRef.new(shape: long, required: true, location_name: "RecordsProcessed")) + AppflowIntegrationWorkflowStep.add_member(:batch_records_start_time, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "BatchRecordsStartTime")) + AppflowIntegrationWorkflowStep.add_member(:batch_records_end_time, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "BatchRecordsEndTime")) + AppflowIntegrationWorkflowStep.add_member(:created_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "CreatedAt")) + AppflowIntegrationWorkflowStep.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt")) + AppflowIntegrationWorkflowStep.struct_class = Types::AppflowIntegrationWorkflowStep + AttributeSourceIdMap.key = Shapes::ShapeRef.new(shape: string1To255) AttributeSourceIdMap.value = Shapes::ShapeRef.new(shape: uuid) @@ -251,6 +301,12 @@ module ClientApi BadRequestException.add_member(:message, Shapes::ShapeRef.new(shape: message, location_name: "Message")) BadRequestException.struct_class = Types::BadRequestException + Batch.add_member(:start_time, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "StartTime")) + Batch.add_member(:end_time, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "EndTime")) + Batch.struct_class = Types::Batch + + Batches.member = Shapes::ShapeRef.new(shape: Batch) + ConflictResolution.add_member(:conflict_resolving_model, Shapes::ShapeRef.new(shape: ConflictResolvingModel, required: true, location_name: "ConflictResolvingModel")) ConflictResolution.add_member(:source_name, Shapes::ShapeRef.new(shape: string1To255, location_name: "SourceName")) ConflictResolution.struct_class = Types::ConflictResolution @@ -283,6 +339,18 @@ module ClientApi CreateDomainResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) CreateDomainResponse.struct_class = Types::CreateDomainResponse + CreateIntegrationWorkflowRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) + CreateIntegrationWorkflowRequest.add_member(:workflow_type, Shapes::ShapeRef.new(shape: WorkflowType, required: true, location_name: "WorkflowType")) + CreateIntegrationWorkflowRequest.add_member(:integration_config, Shapes::ShapeRef.new(shape: IntegrationConfig, required: true, location_name: "IntegrationConfig")) + CreateIntegrationWorkflowRequest.add_member(:object_type_name, Shapes::ShapeRef.new(shape: typeName, required: true, location_name: "ObjectTypeName")) + CreateIntegrationWorkflowRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "RoleArn")) + CreateIntegrationWorkflowRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) + CreateIntegrationWorkflowRequest.struct_class = Types::CreateIntegrationWorkflowRequest + + CreateIntegrationWorkflowResponse.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, required: true, location_name: "WorkflowId")) + CreateIntegrationWorkflowResponse.add_member(:message, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "Message")) + CreateIntegrationWorkflowResponse.struct_class = Types::CreateIntegrationWorkflowResponse + CreateProfileRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) CreateProfileRequest.add_member(:account_number, Shapes::ShapeRef.new(shape: string1To255, location_name: "AccountNumber")) CreateProfileRequest.add_member(:additional_information, Shapes::ShapeRef.new(shape: string1To1000, location_name: "AdditionalInformation")) @@ -355,6 +423,12 @@ module ClientApi DeleteProfileResponse.add_member(:message, Shapes::ShapeRef.new(shape: message, location_name: "Message")) DeleteProfileResponse.struct_class = Types::DeleteProfileResponse + DeleteWorkflowRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) + DeleteWorkflowRequest.add_member(:workflow_id, Shapes::ShapeRef.new(shape: string1To255, required: true, location: "uri", location_name: "WorkflowId")) + DeleteWorkflowRequest.struct_class = Types::DeleteWorkflowRequest + + DeleteWorkflowResponse.struct_class = Types::DeleteWorkflowResponse + DomainList.member = Shapes::ShapeRef.new(shape: ListDomainItem) DomainStats.add_member(:profile_count, Shapes::ShapeRef.new(shape: long, location_name: "ProfileCount")) @@ -458,6 +532,7 @@ module ClientApi GetIntegrationResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt")) GetIntegrationResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) GetIntegrationResponse.add_member(:object_type_names, Shapes::ShapeRef.new(shape: ObjectTypeNames, location_name: "ObjectTypeNames")) + GetIntegrationResponse.add_member(:workflow_id, Shapes::ShapeRef.new(shape: string1To255, location_name: "WorkflowId")) GetIntegrationResponse.struct_class = Types::GetIntegrationResponse GetMatchesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token")) @@ -501,6 +576,32 @@ module ClientApi GetProfileObjectTypeTemplateResponse.add_member(:keys, Shapes::ShapeRef.new(shape: KeyMap, location_name: "Keys")) GetProfileObjectTypeTemplateResponse.struct_class = Types::GetProfileObjectTypeTemplateResponse + GetWorkflowRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) + GetWorkflowRequest.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, required: true, location: "uri", location_name: "WorkflowId")) + GetWorkflowRequest.struct_class = Types::GetWorkflowRequest + + GetWorkflowResponse.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, location_name: "WorkflowId")) + GetWorkflowResponse.add_member(:workflow_type, Shapes::ShapeRef.new(shape: WorkflowType, location_name: "WorkflowType")) + GetWorkflowResponse.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "Status")) + GetWorkflowResponse.add_member(:error_description, Shapes::ShapeRef.new(shape: string1To255, location_name: "ErrorDescription")) + GetWorkflowResponse.add_member(:start_date, Shapes::ShapeRef.new(shape: timestamp, location_name: "StartDate")) + GetWorkflowResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, location_name: "LastUpdatedAt")) + GetWorkflowResponse.add_member(:attributes, Shapes::ShapeRef.new(shape: WorkflowAttributes, location_name: "Attributes")) + GetWorkflowResponse.add_member(:metrics, Shapes::ShapeRef.new(shape: WorkflowMetrics, location_name: "Metrics")) + GetWorkflowResponse.struct_class = Types::GetWorkflowResponse + + GetWorkflowStepsRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) + GetWorkflowStepsRequest.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, required: true, location: "uri", location_name: "WorkflowId")) + GetWorkflowStepsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token")) + GetWorkflowStepsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results")) + GetWorkflowStepsRequest.struct_class = Types::GetWorkflowStepsRequest + + GetWorkflowStepsResponse.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, location_name: "WorkflowId")) + GetWorkflowStepsResponse.add_member(:workflow_type, Shapes::ShapeRef.new(shape: WorkflowType, location_name: "WorkflowType")) + GetWorkflowStepsResponse.add_member(:items, Shapes::ShapeRef.new(shape: WorkflowStepsList, location_name: "Items")) + GetWorkflowStepsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location_name: "NextToken")) + GetWorkflowStepsResponse.struct_class = Types::GetWorkflowStepsResponse + IdentityResolutionJob.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, location_name: "DomainName")) IdentityResolutionJob.add_member(:job_id, Shapes::ShapeRef.new(shape: uuid, location_name: "JobId")) IdentityResolutionJob.add_member(:status, Shapes::ShapeRef.new(shape: IdentityResolutionJobStatus, location_name: "Status")) @@ -516,6 +617,9 @@ module ClientApi IncrementalPullConfig.add_member(:datetime_type_field_name, Shapes::ShapeRef.new(shape: DatetimeTypeFieldName, location_name: "DatetimeTypeFieldName")) IncrementalPullConfig.struct_class = Types::IncrementalPullConfig + IntegrationConfig.add_member(:appflow_integration, Shapes::ShapeRef.new(shape: AppflowIntegration, location_name: "AppflowIntegration")) + IntegrationConfig.struct_class = Types::IntegrationConfig + IntegrationList.member = Shapes::ShapeRef.new(shape: ListIntegrationItem) InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: message, location_name: "Message")) @@ -536,6 +640,7 @@ module ClientApi ListAccountIntegrationsRequest.add_member(:uri, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "Uri")) ListAccountIntegrationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token")) ListAccountIntegrationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results")) + ListAccountIntegrationsRequest.add_member(:include_hidden, Shapes::ShapeRef.new(shape: optionalBoolean, location: "querystring", location_name: "include-hidden")) ListAccountIntegrationsRequest.struct_class = Types::ListAccountIntegrationsRequest ListAccountIntegrationsResponse.add_member(:items, Shapes::ShapeRef.new(shape: IntegrationList, location_name: "Items")) @@ -572,11 +677,13 @@ module ClientApi ListIntegrationItem.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt")) ListIntegrationItem.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) ListIntegrationItem.add_member(:object_type_names, Shapes::ShapeRef.new(shape: ObjectTypeNames, location_name: "ObjectTypeNames")) + ListIntegrationItem.add_member(:workflow_id, Shapes::ShapeRef.new(shape: string1To255, location_name: "WorkflowId")) ListIntegrationItem.struct_class = Types::ListIntegrationItem ListIntegrationsRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) ListIntegrationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token")) ListIntegrationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results")) + ListIntegrationsRequest.add_member(:include_hidden, Shapes::ShapeRef.new(shape: optionalBoolean, location: "querystring", location_name: "include-hidden")) ListIntegrationsRequest.struct_class = Types::ListIntegrationsRequest ListIntegrationsResponse.add_member(:items, Shapes::ShapeRef.new(shape: IntegrationList, location_name: "Items")) @@ -635,6 +742,27 @@ module ClientApi ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags")) ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse + ListWorkflowsItem.add_member(:workflow_type, Shapes::ShapeRef.new(shape: WorkflowType, required: true, location_name: "WorkflowType")) + ListWorkflowsItem.add_member(:workflow_id, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "WorkflowId")) + ListWorkflowsItem.add_member(:status, Shapes::ShapeRef.new(shape: Status, required: true, location_name: "Status")) + ListWorkflowsItem.add_member(:status_description, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "StatusDescription")) + ListWorkflowsItem.add_member(:created_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "CreatedAt")) + ListWorkflowsItem.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt")) + ListWorkflowsItem.struct_class = Types::ListWorkflowsItem + + ListWorkflowsRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName")) + ListWorkflowsRequest.add_member(:workflow_type, Shapes::ShapeRef.new(shape: WorkflowType, location_name: "WorkflowType")) + ListWorkflowsRequest.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "Status")) + ListWorkflowsRequest.add_member(:query_start_date, Shapes::ShapeRef.new(shape: timestamp, location_name: "QueryStartDate")) + ListWorkflowsRequest.add_member(:query_end_date, Shapes::ShapeRef.new(shape: timestamp, location_name: "QueryEndDate")) + ListWorkflowsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token")) + ListWorkflowsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results")) + ListWorkflowsRequest.struct_class = Types::ListWorkflowsRequest + + ListWorkflowsResponse.add_member(:items, Shapes::ShapeRef.new(shape: WorkflowList, location_name: "Items")) + ListWorkflowsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location_name: "NextToken")) + ListWorkflowsResponse.struct_class = Types::ListWorkflowsResponse + MarketoSourceProperties.add_member(:object, Shapes::ShapeRef.new(shape: Object, required: true, location_name: "Object")) MarketoSourceProperties.struct_class = Types::MarketoSourceProperties @@ -739,6 +867,7 @@ module ClientApi PutIntegrationResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt")) PutIntegrationResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) PutIntegrationResponse.add_member(:object_type_names, Shapes::ShapeRef.new(shape: ObjectTypeNames, location_name: "ObjectTypeNames")) + PutIntegrationResponse.add_member(:workflow_id, Shapes::ShapeRef.new(shape: string1To255, location_name: "WorkflowId")) PutIntegrationResponse.struct_class = Types::PutIntegrationResponse PutProfileObjectRequest.add_member(:object_type_name, Shapes::ShapeRef.new(shape: typeName, required: true, location_name: "ObjectTypeName")) @@ -936,6 +1065,19 @@ module ClientApi UpdateProfileResponse.add_member(:profile_id, Shapes::ShapeRef.new(shape: uuid, required: true, location_name: "ProfileId")) UpdateProfileResponse.struct_class = Types::UpdateProfileResponse + WorkflowAttributes.add_member(:appflow_integration, Shapes::ShapeRef.new(shape: AppflowIntegrationWorkflowAttributes, location_name: "AppflowIntegration")) + WorkflowAttributes.struct_class = Types::WorkflowAttributes + + WorkflowList.member = Shapes::ShapeRef.new(shape: ListWorkflowsItem) + + WorkflowMetrics.add_member(:appflow_integration, Shapes::ShapeRef.new(shape: AppflowIntegrationWorkflowMetrics, location_name: "AppflowIntegration")) + WorkflowMetrics.struct_class = Types::WorkflowMetrics + + WorkflowStepItem.add_member(:appflow_integration, Shapes::ShapeRef.new(shape: AppflowIntegrationWorkflowStep, location_name: "AppflowIntegration")) + WorkflowStepItem.struct_class = Types::WorkflowStepItem + + WorkflowStepsList.member = Shapes::ShapeRef.new(shape: WorkflowStepItem) + ZendeskSourceProperties.add_member(:object, Shapes::ShapeRef.new(shape: Object, required: true, location_name: "Object")) ZendeskSourceProperties.struct_class = Types::ZendeskSourceProperties @@ -986,6 +1128,19 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InternalServerException) end) + api.add_operation(:create_integration_workflow, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateIntegrationWorkflow" + o.http_method = "POST" + o.http_request_uri = "/domains/{DomainName}/workflows/integrations" + o.input = Shapes::ShapeRef.new(shape: CreateIntegrationWorkflowRequest) + o.output = Shapes::ShapeRef.new(shape: CreateIntegrationWorkflowResponse) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:create_profile, Seahorse::Model::Operation.new.tap do |o| o.name = "CreateProfile" o.http_method = "POST" @@ -1077,6 +1232,19 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InternalServerException) end) + api.add_operation(:delete_workflow, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteWorkflow" + o.http_method = "DELETE" + o.http_request_uri = "/domains/{DomainName}/workflows/{WorkflowId}" + o.input = Shapes::ShapeRef.new(shape: DeleteWorkflowRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteWorkflowResponse) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:get_auto_merging_preview, Seahorse::Model::Operation.new.tap do |o| o.name = "GetAutoMergingPreview" o.http_method = "POST" @@ -1168,6 +1336,32 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InternalServerException) end) + api.add_operation(:get_workflow, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetWorkflow" + o.http_method = "GET" + o.http_request_uri = "/domains/{DomainName}/workflows/{WorkflowId}" + o.input = Shapes::ShapeRef.new(shape: GetWorkflowRequest) + o.output = Shapes::ShapeRef.new(shape: GetWorkflowResponse) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:get_workflow_steps, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetWorkflowSteps" + o.http_method = "GET" + o.http_request_uri = "/domains/{DomainName}/workflows/{WorkflowId}/steps" + o.input = Shapes::ShapeRef.new(shape: GetWorkflowStepsRequest) + o.output = Shapes::ShapeRef.new(shape: GetWorkflowStepsResponse) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:list_account_integrations, Seahorse::Model::Operation.new.tap do |o| o.name = "ListAccountIntegrations" o.http_method = "POST" @@ -1270,6 +1464,19 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) end) + api.add_operation(:list_workflows, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListWorkflows" + o.http_method = "POST" + o.http_request_uri = "/domains/{DomainName}/workflows" + o.input = Shapes::ShapeRef.new(shape: ListWorkflowsRequest) + o.output = Shapes::ShapeRef.new(shape: ListWorkflowsResponse) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:merge_profiles, Seahorse::Model::Operation.new.tap do |o| o.name = "MergeProfiles" o.http_method = "POST" diff --git a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/types.rb b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/types.rb index 41522fbf15b..2aaacb4b5e9 100644 --- a/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/types.rb +++ b/gems/aws-sdk-customerprofiles/lib/aws-sdk-customerprofiles/types.rb @@ -153,6 +153,212 @@ class Address < Struct.new( include Aws::Structure end + # Details for workflow of type `APPFLOW_INTEGRATION`. + # + # @note When making an API call, you may pass AppflowIntegration + # data as a hash: + # + # { + # flow_definition: { # required + # description: "FlowDescription", + # flow_name: "FlowName", # required + # kms_arn: "KmsArn", # required + # source_flow_config: { # required + # connector_profile_name: "ConnectorProfileName", + # connector_type: "Salesforce", # required, accepts Salesforce, Marketo, Zendesk, Servicenow, S3 + # incremental_pull_config: { + # datetime_type_field_name: "DatetimeTypeFieldName", + # }, + # source_connector_properties: { # required + # marketo: { + # object: "Object", # required + # }, + # s3: { + # bucket_name: "BucketName", # required + # bucket_prefix: "BucketPrefix", + # }, + # salesforce: { + # object: "Object", # required + # enable_dynamic_field_update: false, + # include_deleted_records: false, + # }, + # service_now: { + # object: "Object", # required + # }, + # zendesk: { + # object: "Object", # required + # }, + # }, + # }, + # tasks: [ # required + # { + # connector_operator: { + # marketo: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # s3: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # salesforce: "PROJECTION", # accepts PROJECTION, LESS_THAN, CONTAINS, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # service_now: "PROJECTION", # accepts PROJECTION, CONTAINS, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # zendesk: "PROJECTION", # accepts PROJECTION, GREATER_THAN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # }, + # destination_field: "DestinationField", + # source_fields: ["stringTo2048"], # required + # task_properties: { + # "VALUE" => "Property", + # }, + # task_type: "Arithmetic", # required, accepts Arithmetic, Filter, Map, Mask, Merge, Truncate, Validate + # }, + # ], + # trigger_config: { # required + # trigger_type: "Scheduled", # required, accepts Scheduled, Event, OnDemand + # trigger_properties: { + # scheduled: { + # schedule_expression: "ScheduleExpression", # required + # data_pull_mode: "Incremental", # accepts Incremental, Complete + # schedule_start_time: Time.now, + # schedule_end_time: Time.now, + # timezone: "Timezone", + # schedule_offset: 1, + # first_execution_from: Time.now, + # }, + # }, + # }, + # }, + # batches: [ + # { + # start_time: Time.now, # required + # end_time: Time.now, # required + # }, + # ], + # } + # + # @!attribute [rw] flow_definition + # The configurations that control how Customer Profiles retrieves data + # from the source, Amazon AppFlow. Customer Profiles uses this + # information to create an AppFlow flow on behalf of customers. + # @return [Types::FlowDefinition] + # + # @!attribute [rw] batches + # Batches in workflow of type `APPFLOW_INTEGRATION`. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AppflowIntegration AWS API Documentation + # + class AppflowIntegration < Struct.new( + :flow_definition, + :batches) + SENSITIVE = [] + include Aws::Structure + end + + # Structure holding all `APPFLOW_INTEGRATION` specific workflow + # attributes. + # + # @!attribute [rw] source_connector_type + # Specifies the source connector type, such as Salesforce, ServiceNow, + # and Marketo. Indicates source of ingestion. + # @return [String] + # + # @!attribute [rw] connector_profile_name + # The name of the AppFlow connector profile used for ingestion. + # @return [String] + # + # @!attribute [rw] role_arn + # The Amazon Resource Name (ARN) of the IAM role. Customer Profiles + # assumes this role to create resources on your behalf as part of + # workflow execution. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AppflowIntegrationWorkflowAttributes AWS API Documentation + # + class AppflowIntegrationWorkflowAttributes < Struct.new( + :source_connector_type, + :connector_profile_name, + :role_arn) + SENSITIVE = [] + include Aws::Structure + end + + # Workflow specific execution metrics for `APPFLOW_INTEGRATION` + # workflow. + # + # @!attribute [rw] records_processed + # Number of records processed in `APPFLOW_INTEGRATION` workflow. + # @return [Integer] + # + # @!attribute [rw] steps_completed + # Total steps completed in `APPFLOW_INTEGRATION` workflow. + # @return [Integer] + # + # @!attribute [rw] total_steps + # Total steps in `APPFLOW_INTEGRATION` workflow. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AppflowIntegrationWorkflowMetrics AWS API Documentation + # + class AppflowIntegrationWorkflowMetrics < Struct.new( + :records_processed, + :steps_completed, + :total_steps) + SENSITIVE = [] + include Aws::Structure + end + + # Workflow step details for `APPFLOW_INTEGRATION` workflow. + # + # @!attribute [rw] flow_name + # Name of the flow created during execution of workflow step. + # `APPFLOW_INTEGRATION` workflow type creates an appflow flow during + # workflow step execution on the customers behalf. + # @return [String] + # + # @!attribute [rw] status + # Workflow step status for `APPFLOW_INTEGRATION` workflow. + # @return [String] + # + # @!attribute [rw] execution_message + # Message indicating execution of workflow step for + # `APPFLOW_INTEGRATION` workflow. + # @return [String] + # + # @!attribute [rw] records_processed + # Total number of records processed during execution of workflow step + # for `APPFLOW_INTEGRATION` workflow. + # @return [Integer] + # + # @!attribute [rw] batch_records_start_time + # Start datetime of records pulled in batch during execution of + # workflow step for `APPFLOW_INTEGRATION` workflow. + # @return [String] + # + # @!attribute [rw] batch_records_end_time + # End datetime of records pulled in batch during execution of workflow + # step for `APPFLOW_INTEGRATION` workflow. + # @return [String] + # + # @!attribute [rw] created_at + # Creation timestamp of workflow step for `APPFLOW_INTEGRATION` + # workflow. + # @return [Time] + # + # @!attribute [rw] last_updated_at + # Last updated timestamp for workflow step for `APPFLOW_INTEGRATION` + # workflow. + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AppflowIntegrationWorkflowStep AWS API Documentation + # + class AppflowIntegrationWorkflowStep < Struct.new( + :flow_name, + :status, + :execution_message, + :records_processed, + :batch_records_start_time, + :batch_records_end_time, + :created_at, + :last_updated_at) + SENSITIVE = [] + include Aws::Structure + end + # Configuration settings for how to perform the auto-merging of # profiles. # @@ -212,6 +418,35 @@ class BadRequestException < Struct.new( include Aws::Structure end + # Batch defines the boundaries for ingestion for each step in + # `APPFLOW_INTEGRATION` workflow. `APPFLOW_INTEGRATION` workflow splits + # ingestion based on these boundaries. + # + # @note When making an API call, you may pass Batch + # data as a hash: + # + # { + # start_time: Time.now, # required + # end_time: Time.now, # required + # } + # + # @!attribute [rw] start_time + # Start time of batch to split ingestion. + # @return [Time] + # + # @!attribute [rw] end_time + # End time of batch to split ingestion. + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/Batch AWS API Documentation + # + class Batch < Struct.new( + :start_time, + :end_time) + SENSITIVE = [] + include Aws::Structure + end + # How the auto-merging process should resolve conflicts between # different profiles. # @@ -481,6 +716,150 @@ class CreateDomainResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass CreateIntegrationWorkflowRequest + # data as a hash: + # + # { + # domain_name: "name", # required + # workflow_type: "APPFLOW_INTEGRATION", # required, accepts APPFLOW_INTEGRATION + # integration_config: { # required + # appflow_integration: { + # flow_definition: { # required + # description: "FlowDescription", + # flow_name: "FlowName", # required + # kms_arn: "KmsArn", # required + # source_flow_config: { # required + # connector_profile_name: "ConnectorProfileName", + # connector_type: "Salesforce", # required, accepts Salesforce, Marketo, Zendesk, Servicenow, S3 + # incremental_pull_config: { + # datetime_type_field_name: "DatetimeTypeFieldName", + # }, + # source_connector_properties: { # required + # marketo: { + # object: "Object", # required + # }, + # s3: { + # bucket_name: "BucketName", # required + # bucket_prefix: "BucketPrefix", + # }, + # salesforce: { + # object: "Object", # required + # enable_dynamic_field_update: false, + # include_deleted_records: false, + # }, + # service_now: { + # object: "Object", # required + # }, + # zendesk: { + # object: "Object", # required + # }, + # }, + # }, + # tasks: [ # required + # { + # connector_operator: { + # marketo: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # s3: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # salesforce: "PROJECTION", # accepts PROJECTION, LESS_THAN, CONTAINS, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # service_now: "PROJECTION", # accepts PROJECTION, CONTAINS, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # zendesk: "PROJECTION", # accepts PROJECTION, GREATER_THAN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # }, + # destination_field: "DestinationField", + # source_fields: ["stringTo2048"], # required + # task_properties: { + # "VALUE" => "Property", + # }, + # task_type: "Arithmetic", # required, accepts Arithmetic, Filter, Map, Mask, Merge, Truncate, Validate + # }, + # ], + # trigger_config: { # required + # trigger_type: "Scheduled", # required, accepts Scheduled, Event, OnDemand + # trigger_properties: { + # scheduled: { + # schedule_expression: "ScheduleExpression", # required + # data_pull_mode: "Incremental", # accepts Incremental, Complete + # schedule_start_time: Time.now, + # schedule_end_time: Time.now, + # timezone: "Timezone", + # schedule_offset: 1, + # first_execution_from: Time.now, + # }, + # }, + # }, + # }, + # batches: [ + # { + # start_time: Time.now, # required + # end_time: Time.now, # required + # }, + # ], + # }, + # }, + # object_type_name: "typeName", # required + # role_arn: "RoleArn", # required + # tags: { + # "TagKey" => "TagValue", + # }, + # } + # + # @!attribute [rw] domain_name + # The unique name of the domain. + # @return [String] + # + # @!attribute [rw] workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # @return [String] + # + # @!attribute [rw] integration_config + # Configuration data for integration workflow. + # @return [Types::IntegrationConfig] + # + # @!attribute [rw] object_type_name + # The name of the profile object type. + # @return [String] + # + # @!attribute [rw] role_arn + # The Amazon Resource Name (ARN) of the IAM role. Customer Profiles + # assumes this role to create resources on your behalf as part of + # workflow execution. + # @return [String] + # + # @!attribute [rw] tags + # The tags used to organize, track, or control access for this + # resource. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateIntegrationWorkflowRequest AWS API Documentation + # + class CreateIntegrationWorkflowRequest < Struct.new( + :domain_name, + :workflow_type, + :integration_config, + :object_type_name, + :role_arn, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @!attribute [rw] message + # A message indicating create request was received. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateIntegrationWorkflowResponse AWS API Documentation + # + class CreateIntegrationWorkflowResponse < Struct.new( + :workflow_id, + :message) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass CreateProfileRequest # data as a hash: # @@ -928,6 +1307,35 @@ class DeleteProfileResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass DeleteWorkflowRequest + # data as a hash: + # + # { + # domain_name: "name", # required + # workflow_id: "string1To255", # required + # } + # + # @!attribute [rw] domain_name + # The unique name of the domain. + # @return [String] + # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteWorkflowRequest AWS API Documentation + # + class DeleteWorkflowRequest < Struct.new( + :domain_name, + :workflow_id) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteWorkflowResponse AWS API Documentation + # + class DeleteWorkflowResponse < Aws::EmptyStructure; end + # Usage-specific statistics about the domain. # # @!attribute [rw] profile_count @@ -1601,6 +2009,10 @@ class GetIntegrationRequest < Struct.new( # `ShopifyCreateOrders`, and `ShopifyUpdatedOrders`. # @return [Hash] # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegrationResponse AWS API Documentation # class GetIntegrationResponse < Struct.new( @@ -1610,7 +2022,8 @@ class GetIntegrationResponse < Struct.new( :created_at, :last_updated_at, :tags, - :object_type_names) + :object_type_names, + :workflow_id) SENSITIVE = [] include Aws::Structure end @@ -1843,6 +2256,147 @@ class GetProfileObjectTypeTemplateResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass GetWorkflowRequest + # data as a hash: + # + # { + # domain_name: "name", # required + # workflow_id: "uuid", # required + # } + # + # @!attribute [rw] domain_name + # The unique name of the domain. + # @return [String] + # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflowRequest AWS API Documentation + # + class GetWorkflowRequest < Struct.new( + :domain_name, + :workflow_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @!attribute [rw] workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # @return [String] + # + # @!attribute [rw] status + # Status of workflow execution. + # @return [String] + # + # @!attribute [rw] error_description + # Workflow error messages during execution (if any). + # @return [String] + # + # @!attribute [rw] start_date + # The timestamp that represents when workflow execution started. + # @return [Time] + # + # @!attribute [rw] last_updated_at + # The timestamp that represents when workflow execution last updated. + # @return [Time] + # + # @!attribute [rw] attributes + # Attributes provided for workflow execution. + # @return [Types::WorkflowAttributes] + # + # @!attribute [rw] metrics + # Workflow specific execution metrics. + # @return [Types::WorkflowMetrics] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflowResponse AWS API Documentation + # + class GetWorkflowResponse < Struct.new( + :workflow_id, + :workflow_type, + :status, + :error_description, + :start_date, + :last_updated_at, + :attributes, + :metrics) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass GetWorkflowStepsRequest + # data as a hash: + # + # { + # domain_name: "name", # required + # workflow_id: "uuid", # required + # next_token: "token", + # max_results: 1, + # } + # + # @!attribute [rw] domain_name + # The unique name of the domain. + # @return [String] + # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @!attribute [rw] next_token + # The token for the next set of results. Use the value returned in the + # previous response in the next request to retrieve the next set of + # results. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per page. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflowStepsRequest AWS API Documentation + # + class GetWorkflowStepsRequest < Struct.new( + :domain_name, + :workflow_id, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @!attribute [rw] workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # @return [String] + # + # @!attribute [rw] items + # List containing workflow step details. + # @return [Array] + # + # @!attribute [rw] next_token + # If there are additional results, this is the token for the next set + # of results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetWorkflowStepsResponse AWS API Documentation + # + class GetWorkflowStepsResponse < Struct.new( + :workflow_id, + :workflow_type, + :items, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + # Information about the Identity Resolution Job. # # @!attribute [rw] domain_name @@ -1940,6 +2494,97 @@ class IncrementalPullConfig < Struct.new( include Aws::Structure end + # Configuration data for integration workflow. + # + # @note When making an API call, you may pass IntegrationConfig + # data as a hash: + # + # { + # appflow_integration: { + # flow_definition: { # required + # description: "FlowDescription", + # flow_name: "FlowName", # required + # kms_arn: "KmsArn", # required + # source_flow_config: { # required + # connector_profile_name: "ConnectorProfileName", + # connector_type: "Salesforce", # required, accepts Salesforce, Marketo, Zendesk, Servicenow, S3 + # incremental_pull_config: { + # datetime_type_field_name: "DatetimeTypeFieldName", + # }, + # source_connector_properties: { # required + # marketo: { + # object: "Object", # required + # }, + # s3: { + # bucket_name: "BucketName", # required + # bucket_prefix: "BucketPrefix", + # }, + # salesforce: { + # object: "Object", # required + # enable_dynamic_field_update: false, + # include_deleted_records: false, + # }, + # service_now: { + # object: "Object", # required + # }, + # zendesk: { + # object: "Object", # required + # }, + # }, + # }, + # tasks: [ # required + # { + # connector_operator: { + # marketo: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # s3: "PROJECTION", # accepts PROJECTION, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # salesforce: "PROJECTION", # accepts PROJECTION, LESS_THAN, CONTAINS, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # service_now: "PROJECTION", # accepts PROJECTION, CONTAINS, LESS_THAN, GREATER_THAN, BETWEEN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO, NOT_EQUAL_TO, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # zendesk: "PROJECTION", # accepts PROJECTION, GREATER_THAN, ADDITION, MULTIPLICATION, DIVISION, SUBTRACTION, MASK_ALL, MASK_FIRST_N, MASK_LAST_N, VALIDATE_NON_NULL, VALIDATE_NON_ZERO, VALIDATE_NON_NEGATIVE, VALIDATE_NUMERIC, NO_OP + # }, + # destination_field: "DestinationField", + # source_fields: ["stringTo2048"], # required + # task_properties: { + # "VALUE" => "Property", + # }, + # task_type: "Arithmetic", # required, accepts Arithmetic, Filter, Map, Mask, Merge, Truncate, Validate + # }, + # ], + # trigger_config: { # required + # trigger_type: "Scheduled", # required, accepts Scheduled, Event, OnDemand + # trigger_properties: { + # scheduled: { + # schedule_expression: "ScheduleExpression", # required + # data_pull_mode: "Incremental", # accepts Incremental, Complete + # schedule_start_time: Time.now, + # schedule_end_time: Time.now, + # timezone: "Timezone", + # schedule_offset: 1, + # first_execution_from: Time.now, + # }, + # }, + # }, + # }, + # batches: [ + # { + # start_time: Time.now, # required + # end_time: Time.now, # required + # }, + # ], + # }, + # } + # + # @!attribute [rw] appflow_integration + # Configuration data for `APPFLOW_INTEGRATION` workflow type. + # @return [Types::AppflowIntegration] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/IntegrationConfig AWS API Documentation + # + class IntegrationConfig < Struct.new( + :appflow_integration) + SENSITIVE = [] + include Aws::Structure + end + # An internal service error occurred. # # @!attribute [rw] message @@ -2012,6 +2657,7 @@ class JobStats < Struct.new( # uri: "string1To255", # required # next_token: "token", # max_results: 1, + # include_hidden: false, # } # # @!attribute [rw] uri @@ -2027,12 +2673,18 @@ class JobStats < Struct.new( # The maximum number of objects returned per page. # @return [Integer] # + # @!attribute [rw] include_hidden + # Boolean to indicate if hidden integration should be returned. + # Defaults to `False`. + # @return [Boolean] + # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrationsRequest AWS API Documentation # class ListAccountIntegrationsRequest < Struct.new( :uri, :next_token, - :max_results) + :max_results, + :include_hidden) SENSITIVE = [] include Aws::Structure end @@ -2215,6 +2867,10 @@ class ListIdentityResolutionJobsResponse < Struct.new( # `ShopifyCreateOrders`, and `ShopifyUpdatedOrders`. # @return [Hash] # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrationItem AWS API Documentation # class ListIntegrationItem < Struct.new( @@ -2224,7 +2880,8 @@ class ListIntegrationItem < Struct.new( :created_at, :last_updated_at, :tags, - :object_type_names) + :object_type_names, + :workflow_id) SENSITIVE = [] include Aws::Structure end @@ -2236,6 +2893,7 @@ class ListIntegrationItem < Struct.new( # domain_name: "name", # required # next_token: "token", # max_results: 1, + # include_hidden: false, # } # # @!attribute [rw] domain_name @@ -2250,12 +2908,18 @@ class ListIntegrationItem < Struct.new( # The maximum number of objects returned per page. # @return [Integer] # + # @!attribute [rw] include_hidden + # Boolean to indicate if hidden integration should be returned. + # Defaults to `False`. + # @return [Boolean] + # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrationsRequest AWS API Documentation # class ListIntegrationsRequest < Struct.new( :domain_name, :next_token, - :max_results) + :max_results, + :include_hidden) SENSITIVE = [] include Aws::Structure end @@ -2556,6 +3220,122 @@ class ListTagsForResourceResponse < Struct.new( include Aws::Structure end + # A workflow in list of workflows. + # + # @!attribute [rw] workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # @return [String] + # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # + # @!attribute [rw] status + # Status of workflow execution. + # @return [String] + # + # @!attribute [rw] status_description + # Description for workflow execution status. + # @return [String] + # + # @!attribute [rw] created_at + # Creation timestamp for workflow. + # @return [Time] + # + # @!attribute [rw] last_updated_at + # Last updated timestamp for workflow. + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListWorkflowsItem AWS API Documentation + # + class ListWorkflowsItem < Struct.new( + :workflow_type, + :workflow_id, + :status, + :status_description, + :created_at, + :last_updated_at) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListWorkflowsRequest + # data as a hash: + # + # { + # domain_name: "name", # required + # workflow_type: "APPFLOW_INTEGRATION", # accepts APPFLOW_INTEGRATION + # status: "NOT_STARTED", # accepts NOT_STARTED, IN_PROGRESS, COMPLETE, FAILED, SPLIT, RETRY, CANCELLED + # query_start_date: Time.now, + # query_end_date: Time.now, + # next_token: "token", + # max_results: 1, + # } + # + # @!attribute [rw] domain_name + # The unique name of the domain. + # @return [String] + # + # @!attribute [rw] workflow_type + # The type of workflow. The only supported value is + # APPFLOW\_INTEGRATION. + # @return [String] + # + # @!attribute [rw] status + # Status of workflow execution. + # @return [String] + # + # @!attribute [rw] query_start_date + # Retrieve workflows started after timestamp. + # @return [Time] + # + # @!attribute [rw] query_end_date + # Retrieve workflows ended after timestamp. + # @return [Time] + # + # @!attribute [rw] next_token + # The token for the next set of results. Use the value returned in the + # previous response in the next request to retrieve the next set of + # results. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per page. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListWorkflowsRequest AWS API Documentation + # + class ListWorkflowsRequest < Struct.new( + :domain_name, + :workflow_type, + :status, + :query_start_date, + :query_end_date, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] items + # List containing workflow details. + # @return [Array] + # + # @!attribute [rw] next_token + # If there are additional results, this is the token for the next set + # of results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListWorkflowsResponse AWS API Documentation + # + class ListWorkflowsResponse < Struct.new( + :items, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + # The properties that are applied when Marketo is being used as a # source. # @@ -3159,6 +3939,10 @@ class PutIntegrationRequest < Struct.new( # `ShopifyCreateOrders`, and `ShopifyUpdatedOrders`. # @return [Hash] # + # @!attribute [rw] workflow_id + # Unique identifier for the workflow. + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegrationResponse AWS API Documentation # class PutIntegrationResponse < Struct.new( @@ -3168,7 +3952,8 @@ class PutIntegrationResponse < Struct.new( :created_at, :last_updated_at, :tags, - :object_type_names) + :object_type_names, + :workflow_id) SENSITIVE = [] include Aws::Structure end @@ -4464,6 +5249,49 @@ class UpdateProfileResponse < Struct.new( include Aws::Structure end + # Structure to hold workflow attributes. + # + # @!attribute [rw] appflow_integration + # Workflow attributes specific to `APPFLOW_INTEGRATION` workflow. + # @return [Types::AppflowIntegrationWorkflowAttributes] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/WorkflowAttributes AWS API Documentation + # + class WorkflowAttributes < Struct.new( + :appflow_integration) + SENSITIVE = [] + include Aws::Structure + end + + # Generic object containing workflow execution metrics. + # + # @!attribute [rw] appflow_integration + # Workflow execution metrics for `APPFLOW_INTEGRATION` workflow. + # @return [Types::AppflowIntegrationWorkflowMetrics] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/WorkflowMetrics AWS API Documentation + # + class WorkflowMetrics < Struct.new( + :appflow_integration) + SENSITIVE = [] + include Aws::Structure + end + + # List containing steps in workflow. + # + # @!attribute [rw] appflow_integration + # Workflow step information specific to `APPFLOW_INTEGRATION` + # workflow. + # @return [Types::AppflowIntegrationWorkflowStep] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/WorkflowStepItem AWS API Documentation + # + class WorkflowStepItem < Struct.new( + :appflow_integration) + SENSITIVE = [] + include Aws::Structure + end + # The properties that are applied when using Zendesk as a flow source. # # @note When making an API call, you may pass ZendeskSourceProperties diff --git a/gems/aws-sdk-dynamodb/CHANGELOG.md b/gems/aws-sdk-dynamodb/CHANGELOG.md index 4bd908d2480..4324995bf13 100644 --- a/gems/aws-sdk-dynamodb/CHANGELOG.md +++ b/gems/aws-sdk-dynamodb/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.73.0 (2022-02-21) +------------------ + +* Feature - DynamoDB ExecuteStatement API now supports Limit as a request parameter to specify the maximum number of items to evaluate. If specified, the service will process up to the Limit and the results will include a LastEvaluatedKey value to continue the read in a subsequent operation. + 1.72.0 (2022-02-03) ------------------ diff --git a/gems/aws-sdk-dynamodb/VERSION b/gems/aws-sdk-dynamodb/VERSION index 0834888f558..5e3a4256626 100644 --- a/gems/aws-sdk-dynamodb/VERSION +++ b/gems/aws-sdk-dynamodb/VERSION @@ -1 +1 @@ -1.72.0 +1.73.0 diff --git a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb.rb b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb.rb index a1dfba24c91..a29c825ed9d 100644 --- a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb.rb +++ b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb.rb @@ -50,6 +50,6 @@ # @!group service module Aws::DynamoDB - GEM_VERSION = '1.72.0' + GEM_VERSION = '1.73.0' end diff --git a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client.rb b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client.rb index a432e8dac08..f4f7b1c53a8 100644 --- a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client.rb +++ b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client.rb @@ -3016,6 +3016,19 @@ def enable_kinesis_streaming_destination(params = {}, options = {}) # This operation allows you to perform reads and singleton writes on # data stored in DynamoDB, using PartiQL. # + # For PartiQL reads (`SELECT` statement), if the total number of + # processed items exceeds the maximum dataset size limit of 1 MB, the + # read stops and results are returned to the user as a + # `LastEvaluatedKey` value to continue the read in a subsequent + # operation. If the filter criteria in `WHERE` clause does not match any + # data, the read will return an empty result set. + # + # A single `SELECT` statement response can return up to the maximum + # number of items (if using the Limit parameter) or a maximum of 1 MB of + # data (and then apply any filtering to the results using `WHERE` + # clause). If `LastEvaluatedKey` is present in the response, you need to + # paginate the result set. + # # @option params [required, String] :statement # The PartiQL statement representing the operation to run. # @@ -3048,11 +3061,24 @@ def enable_kinesis_streaming_destination(params = {}, options = {}) # # * `NONE` - No `ConsumedCapacity` details are included in the response. # + # @option params [Integer] :limit + # The maximum number of items to evaluate (not necessarily the number of + # matching items). If DynamoDB processes the number of items up to the + # limit while processing the results, it stops the operation and returns + # the matching values up to that point, along with a key in + # `LastEvaluatedKey` to apply in a subsequent operation so you can pick + # up where you left off. Also, if the processed dataset size exceeds 1 + # MB before DynamoDB reaches this limit, it stops the operation and + # returns the matching values up to the limit, and a key in + # `LastEvaluatedKey` to apply in a subsequent operation to continue the + # operation. + # # @return [Types::ExecuteStatementOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ExecuteStatementOutput#items #items} => Array<Hash<String,Types::AttributeValue>> # * {Types::ExecuteStatementOutput#next_token #next_token} => String # * {Types::ExecuteStatementOutput#consumed_capacity #consumed_capacity} => Types::ConsumedCapacity + # * {Types::ExecuteStatementOutput#last_evaluated_key #last_evaluated_key} => Hash<String,Types::AttributeValue> # # @example Request syntax with placeholder values # @@ -3062,6 +3088,7 @@ def enable_kinesis_streaming_destination(params = {}, options = {}) # consistent_read: false, # next_token: "PartiQLNextToken", # return_consumed_capacity: "INDEXES", # accepts INDEXES, TOTAL, NONE + # limit: 1, # }) # # @example Response structure @@ -3085,6 +3112,8 @@ def enable_kinesis_streaming_destination(params = {}, options = {}) # resp.consumed_capacity.global_secondary_indexes["IndexName"].read_capacity_units #=> Float # resp.consumed_capacity.global_secondary_indexes["IndexName"].write_capacity_units #=> Float # resp.consumed_capacity.global_secondary_indexes["IndexName"].capacity_units #=> Float + # resp.last_evaluated_key #=> Hash + # resp.last_evaluated_key["AttributeName"] #=> # # @see http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteStatement AWS API Documentation # @@ -7320,7 +7349,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-dynamodb' - context[:gem_version] = '1.72.0' + context[:gem_version] = '1.73.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client_api.rb b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client_api.rb index dfc3804b50d..22e95cf7471 100644 --- a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client_api.rb +++ b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/client_api.rb @@ -835,11 +835,13 @@ module ClientApi ExecuteStatementInput.add_member(:consistent_read, Shapes::ShapeRef.new(shape: ConsistentRead, location_name: "ConsistentRead")) ExecuteStatementInput.add_member(:next_token, Shapes::ShapeRef.new(shape: PartiQLNextToken, location_name: "NextToken")) ExecuteStatementInput.add_member(:return_consumed_capacity, Shapes::ShapeRef.new(shape: ReturnConsumedCapacity, location_name: "ReturnConsumedCapacity")) + ExecuteStatementInput.add_member(:limit, Shapes::ShapeRef.new(shape: PositiveIntegerObject, location_name: "Limit")) ExecuteStatementInput.struct_class = Types::ExecuteStatementInput ExecuteStatementOutput.add_member(:items, Shapes::ShapeRef.new(shape: ItemList, location_name: "Items")) ExecuteStatementOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: PartiQLNextToken, location_name: "NextToken")) ExecuteStatementOutput.add_member(:consumed_capacity, Shapes::ShapeRef.new(shape: ConsumedCapacity, location_name: "ConsumedCapacity")) + ExecuteStatementOutput.add_member(:last_evaluated_key, Shapes::ShapeRef.new(shape: Key, location_name: "LastEvaluatedKey")) ExecuteStatementOutput.struct_class = Types::ExecuteStatementOutput ExecuteTransactionInput.add_member(:transact_statements, Shapes::ShapeRef.new(shape: ParameterizedStatements, required: true, location_name: "TransactStatements")) diff --git a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/types.rb b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/types.rb index 6111acdc8df..35ba3e73845 100644 --- a/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/types.rb +++ b/gems/aws-sdk-dynamodb/lib/aws-sdk-dynamodb/types.rb @@ -3316,6 +3316,7 @@ class Endpoint < Struct.new( # consistent_read: false, # next_token: "PartiQLNextToken", # return_consumed_capacity: "INDEXES", # accepts INDEXES, TOTAL, NONE + # limit: 1, # } # # @!attribute [rw] statement @@ -3357,6 +3358,19 @@ class Endpoint < Struct.new( # response. # @return [String] # + # @!attribute [rw] limit + # The maximum number of items to evaluate (not necessarily the number + # of matching items). If DynamoDB processes the number of items up to + # the limit while processing the results, it stops the operation and + # returns the matching values up to that point, along with a key in + # `LastEvaluatedKey` to apply in a subsequent operation so you can + # pick up where you left off. Also, if the processed dataset size + # exceeds 1 MB before DynamoDB reaches this limit, it stops the + # operation and returns the matching values up to the limit, and a key + # in `LastEvaluatedKey` to apply in a subsequent operation to continue + # the operation. + # @return [Integer] + # # @see http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteStatementInput AWS API Documentation # class ExecuteStatementInput < Struct.new( @@ -3364,7 +3378,8 @@ class ExecuteStatementInput < Struct.new( :parameters, :consistent_read, :next_token, - :return_consumed_capacity) + :return_consumed_capacity, + :limit) SENSITIVE = [] include Aws::Structure end @@ -3395,12 +3410,24 @@ class ExecuteStatementInput < Struct.new( # [1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html # @return [Types::ConsumedCapacity] # + # @!attribute [rw] last_evaluated_key + # The primary key of the item where the operation stopped, inclusive + # of the previous result set. Use this value to start a new operation, + # excluding this value in the new request. If `LastEvaluatedKey` is + # empty, then the "last page" of results has been processed and + # there is no more data to be retrieved. If `LastEvaluatedKey` is not + # empty, it does not necessarily mean that there is more data in the + # result set. The only way to know when you have reached the end of + # the result set is when `LastEvaluatedKey` is empty. + # @return [Hash] + # # @see http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteStatementOutput AWS API Documentation # class ExecuteStatementOutput < Struct.new( :items, :next_token, - :consumed_capacity) + :consumed_capacity, + :last_evaluated_key) SENSITIVE = [] include Aws::Structure end diff --git a/gems/aws-sdk-imagebuilder/CHANGELOG.md b/gems/aws-sdk-imagebuilder/CHANGELOG.md index 86f809bcf4c..89d08280712 100644 --- a/gems/aws-sdk-imagebuilder/CHANGELOG.md +++ b/gems/aws-sdk-imagebuilder/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.39.0 (2022-02-21) +------------------ + +* Feature - This release adds support to enable faster launching for Windows AMIs created by EC2 Image Builder. + 1.38.0 (2022-02-03) ------------------ diff --git a/gems/aws-sdk-imagebuilder/VERSION b/gems/aws-sdk-imagebuilder/VERSION index ebeef2f2d61..5edffce6d57 100644 --- a/gems/aws-sdk-imagebuilder/VERSION +++ b/gems/aws-sdk-imagebuilder/VERSION @@ -1 +1 @@ -1.38.0 +1.39.0 diff --git a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder.rb b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder.rb index c52e9924b93..7d1ce3a4cbf 100644 --- a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder.rb +++ b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder.rb @@ -48,6 +48,6 @@ # @!group service module Aws::Imagebuilder - GEM_VERSION = '1.38.0' + GEM_VERSION = '1.39.0' end diff --git a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client.rb b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client.rb index d37977c25cd..42df9642a8e 100644 --- a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client.rb +++ b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client.rb @@ -397,7 +397,13 @@ def cancel_image_creation(params = {}, options = {}) end # Creates a new component that can be used to build, validate, test, and - # assess your image. + # assess your image. The component is based on a YAML document that you + # specify using exactly one of the following methods: + # + # * Inline, using the `data` property in the request body. + # + # * A URL that points to a YAML document file stored in Amazon S3, using + # the `uri` property in the request body. # # @option params [required, String] :name # The name of the component. @@ -440,14 +446,18 @@ def cancel_image_creation(params = {}, options = {}) # base image OS version during image recipe creation. # # @option params [String] :data - # The data of the component. Used to specify the data inline. Either - # `data` or `uri` can be used to specify the data within the component. + # Component `data` contains inline YAML document content for the + # component. Alternatively, you can specify the `uri` of a YAML document + # file stored in Amazon S3. However, you cannot specify both properties. # # @option params [String] :uri - # The uri of the component. Must be an Amazon S3 URL and the requester - # must have permission to access the Amazon S3 bucket. If you use Amazon - # S3, you can specify component content up to your service quota. Either - # `data` or `uri` can be used to specify the data within the component. + # The `uri` of a YAML component document file. This must be an S3 URL + # (`s3://bucket/key`), and the requester must have permission to access + # the S3 bucket it points to. If you use Amazon S3, you can specify + # component content up to your service quota. + # + # Alternatively, you can specify the YAML document inline, using the + # component `data` property. You cannot specify both properties. # # @option params [String] :kms_key_id # The ID of the KMS key that should be used to encrypt this component. @@ -724,6 +734,21 @@ def create_container_recipe(params = {}, options = {}) # s3_bucket: "NonEmptyString", # required # s3_prefix: "NonEmptyString", # }, + # fast_launch_configurations: [ + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # }, + # ], # }, # ], # tags: { @@ -1640,6 +1665,14 @@ def get_container_recipe_policy(params = {}, options = {}) # resp.distribution_configuration.distributions[0].s3_export_configuration.disk_image_format #=> String, one of "VMDK", "RAW", "VHD" # resp.distribution_configuration.distributions[0].s3_export_configuration.s3_bucket #=> String # resp.distribution_configuration.distributions[0].s3_export_configuration.s3_prefix #=> String + # resp.distribution_configuration.distributions[0].fast_launch_configurations #=> Array + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].enabled #=> Boolean + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].snapshot_configuration.target_resource_count #=> Integer + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].max_parallel_launches #=> Integer + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_id #=> String + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_name #=> String + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_version #=> String + # resp.distribution_configuration.distributions[0].fast_launch_configurations[0].account_id #=> String # resp.distribution_configuration.timeout_minutes #=> Integer # resp.distribution_configuration.date_created #=> String # resp.distribution_configuration.date_updated #=> String @@ -1810,6 +1843,14 @@ def get_distribution_configuration(params = {}, options = {}) # resp.image.distribution_configuration.distributions[0].s3_export_configuration.disk_image_format #=> String, one of "VMDK", "RAW", "VHD" # resp.image.distribution_configuration.distributions[0].s3_export_configuration.s3_bucket #=> String # resp.image.distribution_configuration.distributions[0].s3_export_configuration.s3_prefix #=> String + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations #=> Array + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].enabled #=> Boolean + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].snapshot_configuration.target_resource_count #=> Integer + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].max_parallel_launches #=> Integer + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_id #=> String + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_name #=> String + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].launch_template.launch_template_version #=> String + # resp.image.distribution_configuration.distributions[0].fast_launch_configurations[0].account_id #=> String # resp.image.distribution_configuration.timeout_minutes #=> Integer # resp.image.distribution_configuration.date_created #=> String # resp.image.distribution_configuration.date_updated #=> String @@ -3458,6 +3499,21 @@ def untag_resource(params = {}, options = {}) # s3_bucket: "NonEmptyString", # required # s3_prefix: "NonEmptyString", # }, + # fast_launch_configurations: [ + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # }, + # ], # }, # ], # client_token: "ClientToken", # required @@ -3715,7 +3771,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-imagebuilder' - context[:gem_version] = '1.38.0' + context[:gem_version] = '1.39.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client_api.rb b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client_api.rb index 437c0ad7632..b7736317993 100644 --- a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client_api.rb +++ b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/client_api.rb @@ -106,6 +106,10 @@ module ClientApi EbsVolumeType = Shapes::StringShape.new(name: 'EbsVolumeType') EmptyString = Shapes::StringShape.new(name: 'EmptyString') ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage') + FastLaunchConfiguration = Shapes::StructureShape.new(name: 'FastLaunchConfiguration') + FastLaunchConfigurationList = Shapes::ListShape.new(name: 'FastLaunchConfigurationList') + FastLaunchLaunchTemplateSpecification = Shapes::StructureShape.new(name: 'FastLaunchLaunchTemplateSpecification') + FastLaunchSnapshotConfiguration = Shapes::StructureShape.new(name: 'FastLaunchSnapshotConfiguration') Filter = Shapes::StructureShape.new(name: 'Filter') FilterList = Shapes::ListShape.new(name: 'FilterList') FilterName = Shapes::StringShape.new(name: 'FilterName') @@ -214,6 +218,7 @@ module ClientApi ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse') Logging = Shapes::StructureShape.new(name: 'Logging') + MaxParallelLaunches = Shapes::IntegerShape.new(name: 'MaxParallelLaunches') NonEmptyString = Shapes::StringShape.new(name: 'NonEmptyString') NullableBoolean = Shapes::BooleanShape.new(name: 'NullableBoolean') OrganizationArn = Shapes::StringShape.new(name: 'OrganizationArn') @@ -264,6 +269,7 @@ module ClientApi TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse') TagValue = Shapes::StringShape.new(name: 'TagValue') TargetContainerRepository = Shapes::StructureShape.new(name: 'TargetContainerRepository') + TargetResourceCount = Shapes::IntegerShape.new(name: 'TargetResourceCount') Timezone = Shapes::StringShape.new(name: 'Timezone') UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse') @@ -611,6 +617,7 @@ module ClientApi Distribution.add_member(:license_configuration_arns, Shapes::ShapeRef.new(shape: LicenseConfigurationArnList, location_name: "licenseConfigurationArns")) Distribution.add_member(:launch_template_configurations, Shapes::ShapeRef.new(shape: LaunchTemplateConfigurationList, location_name: "launchTemplateConfigurations")) Distribution.add_member(:s3_export_configuration, Shapes::ShapeRef.new(shape: S3ExportConfiguration, location_name: "s3ExportConfiguration")) + Distribution.add_member(:fast_launch_configurations, Shapes::ShapeRef.new(shape: FastLaunchConfigurationList, location_name: "fastLaunchConfigurations")) Distribution.struct_class = Types::Distribution DistributionConfiguration.add_member(:arn, Shapes::ShapeRef.new(shape: ImageBuilderArn, location_name: "arn")) @@ -646,6 +653,23 @@ module ClientApi EbsInstanceBlockDeviceSpecification.add_member(:throughput, Shapes::ShapeRef.new(shape: EbsVolumeThroughput, location_name: "throughput")) EbsInstanceBlockDeviceSpecification.struct_class = Types::EbsInstanceBlockDeviceSpecification + FastLaunchConfiguration.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "enabled")) + FastLaunchConfiguration.add_member(:snapshot_configuration, Shapes::ShapeRef.new(shape: FastLaunchSnapshotConfiguration, location_name: "snapshotConfiguration")) + FastLaunchConfiguration.add_member(:max_parallel_launches, Shapes::ShapeRef.new(shape: MaxParallelLaunches, location_name: "maxParallelLaunches")) + FastLaunchConfiguration.add_member(:launch_template, Shapes::ShapeRef.new(shape: FastLaunchLaunchTemplateSpecification, location_name: "launchTemplate")) + FastLaunchConfiguration.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId")) + FastLaunchConfiguration.struct_class = Types::FastLaunchConfiguration + + FastLaunchConfigurationList.member = Shapes::ShapeRef.new(shape: FastLaunchConfiguration) + + FastLaunchLaunchTemplateSpecification.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: LaunchTemplateId, location_name: "launchTemplateId")) + FastLaunchLaunchTemplateSpecification.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "launchTemplateName")) + FastLaunchLaunchTemplateSpecification.add_member(:launch_template_version, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "launchTemplateVersion")) + FastLaunchLaunchTemplateSpecification.struct_class = Types::FastLaunchLaunchTemplateSpecification + + FastLaunchSnapshotConfiguration.add_member(:target_resource_count, Shapes::ShapeRef.new(shape: TargetResourceCount, location_name: "targetResourceCount")) + FastLaunchSnapshotConfiguration.struct_class = Types::FastLaunchSnapshotConfiguration + Filter.add_member(:name, Shapes::ShapeRef.new(shape: FilterName, location_name: "name")) Filter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, location_name: "values")) Filter.struct_class = Types::Filter diff --git a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/types.rb b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/types.rb index 59e35597191..8c42a4ece9e 100644 --- a/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/types.rb +++ b/gems/aws-sdk-imagebuilder/lib/aws-sdk-imagebuilder/types.rb @@ -36,12 +36,22 @@ module Types # Use this property to provide commands or a command script to run # when you launch your build instance. # - # The userDataOverride property replaces any commands that Image + # The userDataOverride property replaces any commands that Image # Builder might have added to ensure that Systems Manager is installed # on your Linux build instance. If you override the user data, make # sure that you add commands to install Systems Manager, if it is not # pre-installed on your base image. # + # The user data is always base 64 encoded. For example, the following + # commands are encoded as + # `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$`\: + # + # *#!/bin/bash* + # + # mkdir -p /var/bb/ + # + # touch /var + # # # @return [String] # @@ -294,7 +304,7 @@ class ClientException < Struct.new( # @return [String] # # @!attribute [rw] data - # The data of the component. + # Component data contains the YAML document content for the component. # @return [String] # # @!attribute [rw] kms_key_id @@ -925,17 +935,20 @@ class ContainerRecipeSummary < Struct.new( # @return [Array] # # @!attribute [rw] data - # The data of the component. Used to specify the data inline. Either - # `data` or `uri` can be used to specify the data within the - # component. + # Component `data` contains inline YAML document content for the + # component. Alternatively, you can specify the `uri` of a YAML + # document file stored in Amazon S3. However, you cannot specify both + # properties. # @return [String] # # @!attribute [rw] uri - # The uri of the component. Must be an Amazon S3 URL and the requester - # must have permission to access the Amazon S3 bucket. If you use - # Amazon S3, you can specify component content up to your service - # quota. Either `data` or `uri` can be used to specify the data within - # the component. + # The `uri` of a YAML component document file. This must be an S3 URL + # (`s3://bucket/key`), and the requester must have permission to + # access the S3 bucket it points to. If you use Amazon S3, you can + # specify component content up to your service quota. + # + # Alternatively, you can specify the YAML document inline, using the + # component `data` property. You cannot specify both properties. # @return [String] # # @!attribute [rw] kms_key_id @@ -1231,6 +1244,21 @@ class CreateContainerRecipeResponse < Struct.new( # s3_bucket: "NonEmptyString", # required # s3_prefix: "NonEmptyString", # }, + # fast_launch_configurations: [ + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # }, + # ], # }, # ], # tags: { @@ -2141,6 +2169,21 @@ class DeleteInfrastructureConfigurationResponse < Struct.new( # s3_bucket: "NonEmptyString", # required # s3_prefix: "NonEmptyString", # }, + # fast_launch_configurations: [ + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # }, + # ], # } # # @!attribute [rw] region @@ -2173,6 +2216,11 @@ class DeleteInfrastructureConfigurationResponse < Struct.new( # that Region. # @return [Types::S3ExportConfiguration] # + # @!attribute [rw] fast_launch_configurations + # The Windows faster-launching configurations to use for AMI + # distribution. + # @return [Array] + # # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/Distribution AWS API Documentation # class Distribution < Struct.new( @@ -2181,7 +2229,8 @@ class Distribution < Struct.new( :container_distribution_configuration, :license_configuration_arns, :launch_template_configurations, - :s3_export_configuration) + :s3_export_configuration, + :fast_launch_configurations) SENSITIVE = [] include Aws::Structure end @@ -2344,6 +2393,129 @@ class EbsInstanceBlockDeviceSpecification < Struct.new( include Aws::Structure end + # Define and configure faster launching for output Windows AMIs. + # + # @note When making an API call, you may pass FastLaunchConfiguration + # data as a hash: + # + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # } + # + # @!attribute [rw] enabled + # A Boolean that represents the current state of faster launching for + # the Windows AMI. Set to `true` to start using Windows faster + # launching, or `false` to stop using it. + # @return [Boolean] + # + # @!attribute [rw] snapshot_configuration + # Configuration settings for managing the number of snapshots that are + # created from pre-provisioned instances for the Windows AMI when + # faster launching is enabled. + # @return [Types::FastLaunchSnapshotConfiguration] + # + # @!attribute [rw] max_parallel_launches + # The maximum number of parallel instances that are launched for + # creating resources. + # @return [Integer] + # + # @!attribute [rw] launch_template + # The launch template that the fast-launch enabled Windows AMI uses + # when it launches Windows instances to create pre-provisioned + # snapshots. + # @return [Types::FastLaunchLaunchTemplateSpecification] + # + # @!attribute [rw] account_id + # The owner account ID for the fast-launch enabled Windows AMI. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/FastLaunchConfiguration AWS API Documentation + # + class FastLaunchConfiguration < Struct.new( + :enabled, + :snapshot_configuration, + :max_parallel_launches, + :launch_template, + :account_id) + SENSITIVE = [] + include Aws::Structure + end + + # Identifies the launch template that the associated Windows AMI uses + # for launching an instance when faster launching is enabled. + # + # You can specify either the `launchTemplateName` or the + # `launchTemplateId`, but not both. + # + # + # + # @note When making an API call, you may pass FastLaunchLaunchTemplateSpecification + # data as a hash: + # + # { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # } + # + # @!attribute [rw] launch_template_id + # The ID of the launch template to use for faster launching for a + # Windows AMI. + # @return [String] + # + # @!attribute [rw] launch_template_name + # The name of the launch template to use for faster launching for a + # Windows AMI. + # @return [String] + # + # @!attribute [rw] launch_template_version + # The version of the launch template to use for faster launching for a + # Windows AMI. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/FastLaunchLaunchTemplateSpecification AWS API Documentation + # + class FastLaunchLaunchTemplateSpecification < Struct.new( + :launch_template_id, + :launch_template_name, + :launch_template_version) + SENSITIVE = [] + include Aws::Structure + end + + # Configuration settings for creating and managing pre-provisioned + # snapshots for a fast-launch enabled Windows AMI. + # + # @note When making an API call, you may pass FastLaunchSnapshotConfiguration + # data as a hash: + # + # { + # target_resource_count: 1, + # } + # + # @!attribute [rw] target_resource_count + # The number of pre-provisioned snapshots to keep on hand for a + # fast-launch enabled Windows AMI. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/FastLaunchSnapshotConfiguration AWS API Documentation + # + class FastLaunchSnapshotConfiguration < Struct.new( + :target_resource_count) + SENSITIVE = [] + include Aws::Structure + end + # A filter name and value pair that is used to return a more specific # list of results from a list operation. Filters can be used to match a # set of resources by specific criteria, such as tags, attributes, or @@ -5717,6 +5889,21 @@ class UntagResourceResponse < Aws::EmptyStructure; end # s3_bucket: "NonEmptyString", # required # s3_prefix: "NonEmptyString", # }, + # fast_launch_configurations: [ + # { + # enabled: false, # required + # snapshot_configuration: { + # target_resource_count: 1, + # }, + # max_parallel_launches: 1, + # launch_template: { + # launch_template_id: "LaunchTemplateId", + # launch_template_name: "NonEmptyString", + # launch_template_version: "NonEmptyString", + # }, + # account_id: "AccountId", + # }, + # ], # }, # ], # client_token: "ClientToken", # required