---
AWSTemplateFormatVersion: '2010-09-09'

Description: IAM Policies, and SageMaker Notebook to work with Personalize.

Parameters:

  NotebookName:
    Type: String
    Default: PersonalizeDevlab
    Description: Enter the name of the SageMaker notebook instance. Deafault is PersonalizeDevlab.

  VolumeSize:
    Type: Number
    Default: 10
    MinValue: 5
    MaxValue: 16384
    ConstraintDescription: Must be an integer between 5 (GB) and 16384 (16 TB).
    Description: Enter the size of the EBS volume in GB.

Resources:
  # SageMaker Execution Role
  SageMakerIamRole:
    Type: "AWS::IAM::Role"
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          -
            Effect: Allow
            Principal:
              Service: sagemaker.amazonaws.com
            Action: sts:AssumeRole
      Path: "/"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
        - "arn:aws:iam::aws:policy/AmazonS3FullAccess"
        - "arn:aws:iam::aws:policy/service-role/AmazonPersonalizeFullAccess"
        - "arn:aws:iam::aws:policy/IAMFullAccess"

  # SageMaker notebook
  NotebookInstance:
    Type: "AWS::SageMaker::NotebookInstance"
    Properties:
      InstanceType: "ml.t2.medium"
      NotebookInstanceName: !Ref NotebookName
      RoleArn: !GetAtt SageMakerIamRole.Arn
      VolumeSizeInGB: !Ref VolumeSize
      DefaultCodeRepository: https://github.com/dalacan/personalize-batch-recommendations.git