aws-cloudformation/cfn-lint

[cfn-lint] E3006: Resource type 'AWS::Personalize::DatasetImportJob' does not exist in 'eu-central-1'

realtebo opened this issue · 3 comments

CloudFormation Lint Version

cfn-lint 1.24.0

What operating system are you using?

mac os 15.3.1

Describe the bug

I am adding this resource

    PersonalizeInteractionsDatasetImportJob:
        Type: AWS::Personalize::DatasetImportJob
        Properties:
            JobName: !Sub '${AWS::StackName}-interactions-import-job'
            DatasetArn: !GetAtt PersonalizeInteractionsDataset.DatasetArn
            DataSource:
                DataLocation: !Sub 's3://${FileBucket}/${InteractionsFilePath}'
            RoleArn: !GetAtt RecommenderRole.Arn

This stack will be released into eu-central-1

I created the file .cfnlintrc

regions:
  - eu-central-1

I got the error

[cfn-lint] E3006: Resource type 'AWS::Personalize::DatasetImportJob' does not exist in 'eu-central-1'

Expected behavior

No warnings

Reproduction template

AWSTemplateFormatVersion: '2010-09-09'

Resources:
    # Job di importazione dei deti delle interaction
    PersonalizeInteractionsDatasetImportJob:
        Type: AWS::Personalize::DatasetImportJob
        Properties:
            JobName: !Sub '${AWS::StackName}-interactions-import-job'
            DatasetArn: !GetAtt PersonalizeInteractionsDataset.DatasetArn
            DataSource:
                DataLocation: !Sub 's3://${FileBucket}/${InteractionsFilePath}'
            RoleArn: !GetAtt RecommenderRole.Arn

I don't see this type in our docs

Are you sure this resource type is correct?

Did you mean to use DatasetImportJob?:

AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyDataset:
    Type: AWS::Personalize::Dataset
    Properties:
      Name: my-dataset-name
      DatasetType: Interactions
      DatasetGroupArn: 'arn:aws:personalize:us-west-2:123456789012:dataset-group/dataset-group-name'
      SchemaArn: 'arn:aws:personalize:us-west-2:123456789012:schema/schema-name'
      DatasetImportJob: # <----- this here?
        JobName: my-import-job-name
        DataSource:
          DataLocation: 's3://bucket-name/file-name.csv'
        RoleArn: 'arn:aws:iam::123456789012:role/personalize-role'

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html

Yes, was my mistake: the right way is to create DatasetImportJob under MyDataset

So Type: AWS::Personalize::DatasetImportJob doesn't exists