Definitions for @turbot/turbot-iam
- accessKey
- accessKeyId
- alphanumericId
- certificate
- directoryEntryPoint
- directoryIssuer
- directorySignatureAlgorithm
- directoryStatus
- displayName
- googleDirectory
- groupProfile
- groupProfileIdTemplate
- hostname
- iam
- identity
- identityMetadata
- ldapDirectory
- ldapFilter
- ldapPassword
- localDirectory
- localDirectoryGroup
- localDirectoryUser
- nameIdFormat
- oAuthClientID
- oAuthClientSecret
- password
- picture
- profile
- profileIdTemplate
- rightDefinition
- rightDefinitionList
- samlDirectory
- secretKey
- signaturePrivateKey
- signRequests
- sshKey
- sshKeyFingerprint
- sshPublicKey
- status
- tlsClientPrivateKey
- turbotDirectory
- turbotDirectoryServer
- turbotLevelDefinition
- turbotPermissionLevelReference
- turbotPermissionTypeReference
- uuidv4
accessKey
{ "description": "An Access Key including the secret access key.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "accessKey": { "$ref": "#/definitions/accessKeyId" }, "secretKey": { "$ref": "#/definitions/secretKey" }, "status": { "$ref": "#/definitions/status" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" } }, "additionalProperties": false, "required": [ "title", "accessKey", "secretKey", "status" ], "tests": [ { "description": "Valid", "input": { "accessKey": "397eea31-598a-45a4-9f95-3b8a02bde026", "title": "397eea31-598a-45a4-9f95-3b8a02bde026", "secretKey": "f3b01a61-2030-483e-9f71-0084feb15b3e", "status": "Active" } }, { "description": "Invalid - missing accessKey", "input": { "title": "397eea31-598a-45a4-9f95-3b8a02bde026", "secretKey": "f3b01a61-2030-483e-9f71-0084feb15b3e", "status": "Active" }, "expected": false }, { "description": "Invalid - missing secretKey", "input": { "title": "397eea31-598a-45a4-9f95-3b8a02bde026", "accessKey": "397eea31-598a-45a4-9f95-3b8a02bde026", "status": "Active" }, "expected": false }, { "description": "Invalid - missing status", "input": { "title": "397eea31-598a-45a4-9f95-3b8a02bde026", "accessKey": "397eea31-598a-45a4-9f95-3b8a02bde026", "secretKey": "f3b01a61-2030-483e-9f71-0084feb15b3e" }, "expected": false }, { "description": "Invalid - missing title", "input": { "accessKey": "397eea31-598a-45a4-9f95-3b8a02bde026", "secretKey": "f3b01a61-2030-483e-9f71-0084feb15b3e", "status": "Active" }, "expected": false }, { "description": "Invalid - unknown property", "input": { "accessKey": "397eea31-598a-45a4-9f95-3b8a02bde026", "secretKey": "f3b01a61-2030-483e-9f71-0084feb15b3e", "status": "Active", "random": "value" }, "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/accessKey", "modUri": "tmod:@turbot/turbot-iam" }}
accessKeyId
{ "description": "Access key for a Turbot access key pair.", "$ref": "#/definitions/uuidv4", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/accessKeyId", "modUri": "tmod:@turbot/turbot-iam" }}
alphanumericId
{ "type": "string", "pattern": "^(?:[a-z][a-z0-9]?|[a-z][a-z0-9-_.]{0,62}[a-z0-9])$", "minLength": 1, "maxLength": 64, "tests": [ { "description": "Valid string", "input": "an-id" }, { "description": "Invalid string with special character", "input": "not-v@lid", "expected": false }, { "description": "Invalid string with space inside", "input": "not valid", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/alphanumericId", "modUri": "tmod:@turbot/turbot-iam" }}
certificate
{ "type": "string", "maxLength": 2097152, "minLength": 1, "pattern": "(-{5}BEGIN CERTIFICATE-{5})?([A-Za-z0-9/\n/+=/]*)(-{5}END CERTIFICATE-{5})?", "tests": [ { "description": "base case with begin/end and line breaks", "input": "-----BEGIN CERTIFICATE-----\nMIIDoDCCAoigAwIBAgIGAV2Tqqa1MA0GCSqGSIb3DQEBCwUAMIGQMQswCQYDVQQGEwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxETAPBgNVBAMMCHR1cmJvdGhxMRwwGgYJKoZIhvcNAQkBFg1p\nbmZvQG9rdGEuY29tMB4XDTE3MDczMDEzMjI0MFoXDTI3MDczMDEzMjM0MFowgZAxCzAJBgNVBAYT\nAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQK\nDARPa3RhMRQwEgYDVQQLDAtTU09Qcm92aWRlcjERMA8GA1UEAwwIdHVyYm90aHExHDAaBgkqhkiG\n9w0BCQEWDWluZm9Ab2t0YS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYHhIn\nVUFP4NRWlqwplgSo7esXlXKiedkTf8+N6AXBah1xIiMubCRXBuDgtjz1ZwDpGa/XY8YtKZGABY+S\nP772WXNMaYc2RNdxSbz54W4TFx/we5LiGPCGmMKtSZHFBBGwGHvSul/NWEJ1TU8nJ1hdh2UBgjf2\nPm6XZAayTkCx15CL/+NfLSgNnHQlcNL+z7xVK2kyqFV1tOmy846A2NtqlluXkrJp0scHC5ryq/cR\n16KnbnOE9tq/I2Z30cHsqqC0kKHfJTBdbOhJcXH1oKObUOcKc1tFhLjUC4J/grZ8e2MVKljtug2j\nSnLlbTbrdG+pPqdCFNkSdfBaQWpZnp1jAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIUJBfEt/Job\nKQljFqegHcJK1MWR0UbdTfVC4jDjX5yItG2igmwIvq0DaHWahrTPwdP3u2yDMyBZTfwwqzgHMg1s\n/OPCOddw+8m0E7n8p37PHtrzS7qlXHjJTC+Ihg/6QOhhHKmXnUN3ic2L4RdaCuIOBHS0qo8H3Mhj\nnSqAXYKBajn2MDQYOTZMPTc4PqQNtL6cCa4RNUk3G+chlhiCzQ/Nb6hKCCHEuhCoIc6htnIcoWmj\n7WWR2Piy5GKSibZ4GQgcLgdu7jTrkbYr56DPzDUEEWa3jCcl/xqyAjWdsX9NCBf4o3nSIdwCAMJZ\nSMbqN5lCzivATVQPxuAPS9fHbSI=\n-----END CERTIFICATE-----" }, { "description": "base case with no begin/end and no line breaks", "input": "MIIDoDCCAoigAwIBAgIGAV2Tqqa1MA0GCSqGSIb3DQEBCwUAMIGQMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxETAPBgNVBAMMCHR1cmJvdGhxMRwwGgYJKoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMB4XDTE3MDczMDEzMjI0MFoXDTI3MDczMDEzMjM0MFowgZAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKDARPa3RhMRQwEgYDVQQLDAtTU09Qcm92aWRlcjERMA8GA1UEAwwIdHVyYm90aHExHDAaBgkqhkiG9w0BCQEWDWluZm9Ab2t0YS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYHhInVUFP4NRWlqwplgSo7esXlXKiedkTf8+N6AXBah1xIiMubCRXBuDgtjz1ZwDpGa/XY8YtKZGABY+SP772WXNMaYc2RNdxSbz54W4TFx/we5LiGPCGmMKtSZHFBBGwGHvSul/NWEJ1TU8nJ1hdh2UBgjf2Pm6XZAayTkCx15CL/+NfLSgNnHQlcNL+z7xVK2kyqFV1tOmy846A2NtqlluXkrJp0scHC5ryq/cR16KnbnOE9tq/I2Z30cHsqqC0kKHfJTBdbOhJcXH1oKObUOcKc1tFhLjUC4J/grZ8e2MVKljtug2jSnLlbTbrdG+pPqdCFNkSdfBaQWpZnp1jAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIUJBfEt/JobKQljFqegHcJK1MWR0UbdTfVC4jDjX5yItG2igmwIvq0DaHWahrTPwdP3u2yDMyBZTfwwqzgHMg1s/OPCOddw+8m0E7n8p37PHtrzS7qlXHjJTC+Ihg/6QOhhHKmXnUN3ic2L4RdaCuIOBHS0qo8H3MhjnSqAXYKBajn2MDQYOTZMPTc4PqQNtL6cCa4RNUk3G+chlhiCzQ/Nb6hKCCHEuhCoIc6htnIcoWmj7WWR2Piy5GKSibZ4GQgcLgdu7jTrkbYr56DPzDUEEWa3jCcl/xqyAjWdsX9NCBf4o3nSIdwCAMJZSMbqN5lCzivATVQPxuAPS9fHbSI=" }, { "description": "invalid - incorrect data type inserted", "input": [ 1234567890 ], "expected": false }, { "description": "invalid - empty string provided", "input": "", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/certificate", "modUri": "tmod:@turbot/turbot-iam" }}
directoryEntryPoint
{ "description": "Defines the identity provider single sign-on (entry point) URL.", "type": "string", "format": "uri", "tests": [ { "description": "Valid directory entry point", "input": "https://example.com/myapp/sso/saml" } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/directoryEntryPoint", "modUri": "tmod:@turbot/turbot-iam" }}
directoryIssuer
{ "description": "Defines the issuer for the SAML identity provider.", "type": "string", "format": "uri", "tests": [ { "description": "Valid directory issuer", "input": "https://example.com/myapp/sso/saml" } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/directoryIssuer", "modUri": "tmod:@turbot/turbot-iam" }}
directorySignatureAlgorithm
{ "description": "Defines the type of algorithm", "type": "string", "enum": [ "SHA-1", "SHA-256", "SHA-512" ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/directorySignatureAlgorithm", "modUri": "tmod:@turbot/turbot-iam" }}
directoryStatus
{ "description": "Defines the different statuses for a Directory that can be used with Turbot.", "oneOf": [ { "type": "string", "enum": [ "new", "inactive", "active", "New", "Inactive", "Active" ], "tests": [ { "description": "Valid directory status (new)", "input": "new" }, { "description": "Valid directory status (inactive)", "input": "inactive" }, { "description": "Valid directory status (active)", "input": "active" }, { "description": "Valid directory status (New)", "input": "New" }, { "description": "Valid directory status (Inactive)", "input": "Inactive" }, { "description": "Valid directory status (Active)", "input": "Active" }, { "description": "Invalid directory status (Unknown)", "input": "Unknown", "expected": false } ] } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/directoryStatus", "modUri": "tmod:@turbot/turbot-iam" }}
displayName
{ "type": "string", "minLength": 1, "maxLength": 256, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/displayName", "modUri": "tmod:@turbot/turbot-iam" }}
{ "description": "Email address", "type": "string", "format": "email", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/email", "modUri": "tmod:@turbot/turbot-iam" }}
googleDirectory
{ "description": "Information about a Google directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "description": { "$ref": "turbot#/definitions/description" }, "directoryType": { "const": "google" }, "status": { "$ref": "#/definitions/directoryStatus" }, "profileIdTemplate": { "$ref": "#/definitions/profileIdTemplate" }, "groupProfileIdTemplate": { "$ref": "#/definitions/groupProfileIdTemplate" }, "clientID": { "$ref": "#/definitions/oAuthClientID" }, "clientSecret": { "$ref": "#/definitions/oAuthClientSecret" }, "hostedDomain": { "$ref": "#/definitions/hostname" } }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/googleDirectory", "modUri": "tmod:@turbot/turbot-iam" }}
groupProfile
{ "description": "Profile for a group in a directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "status": { "$ref": "#/definitions/status" }, "profileId": { "$ref": "turbot#/definitions/trimmedString" }, "displayName": { "$ref": "#/definitions/displayName" } }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/groupProfile", "modUri": "tmod:@turbot/turbot-iam" }}
groupProfileIdTemplate
{ "description": "Template to calculate the ID for a group profile based on a directory group.", "$ref": "turbot#/definitions/trimmedString", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/groupProfileIdTemplate", "modUri": "tmod:@turbot/turbot-iam" }}
hostname
{ "description": "A <a href=\"https://en.wikipedia.org/wiki/Hostname\">DNS hostname</a>.", "example": "turbot.acme.com", "type": "string", "format": "hostname", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/hostname", "modUri": "tmod:@turbot/turbot-iam" }}
iam
{ "allOf": [ { "$ref": "turbot#/definitions/service" }, { "type": "object", "properties": { "title": { "const": "IAM" } } } ], "tests": [ { "description": "IAM", "input": { "title": "IAM" } }, { "description": "invalid - service provider name prefixed", "input": { "title": "Turbot IAM" }, "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/iam", "modUri": "tmod:@turbot/turbot-iam" }}
identity
{ "description": "Identity", "type": "object", "required": [ "turbot" ], "properties": { "turbot": { "$ref": "#/definitions/identityMetadata" } }, "tests": [ { "description": "Valid identity", "input": { "turbot": { "title": "Turbot", "picture": "http://url.to/turbot.png" } } }, { "description": "Invalid identity (missing turbot)", "input": { "foo": "bar" }, "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/identity", "modUri": "tmod:@turbot/turbot-iam" }}
identityMetadata
{ "description": "Identity metadata.", "type": "object", "required": [ "title", "picture" ], "properties": { "title": { "$ref": "turbot#/definitions/trimmedString" }, "picture": { "$ref": "#/definitions/picture" } }, "tests": [ { "description": "Valid identity metadata", "input": { "title": "Turbot", "picture": "http://url.to/turbot.png" } }, { "description": "Invalid identity metadata (missing title)", "input": { "picture": "http://url.to/turbot.png" }, "expected": false }, { "description": "Invalid identity metadata (missing picture)", "input": { "title": "Turbot" }, "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/identityMetadata", "modUri": "tmod:@turbot/turbot-iam" }}
ldapDirectory
{ "description": "Information about a local directory.", "type": "object", "properties": { "directoryType": { "const": "ldap" }, "title": { "$ref": "turbot#/definitions/title" }, "description": { "$ref": "turbot#/definitions/description" }, "status": { "$ref": "#/definitions/directoryStatus" }, "profileIdTemplate": { "$ref": "#/definitions/profileIdTemplate" }, "groupProfileIdTemplate": { "$ref": "#/definitions/groupProfileIdTemplate" }, "url": { "$ref": "turbot#/definitions/trimmedString" }, "distinguishedName": { "$ref": "turbot#/definitions/trimmedString" }, "password": { "$ref": "#/definitions/ldapPassword" }, "tlsEnabled": { "type": "boolean" }, "tlsClientCertificateAuthenticationEnabled": { "type": "boolean" }, "tlsClientCertificate": { "$ref": "#/definitions/certificate" }, "tlsClientPrivateKey": { "$ref": "#/definitions/tlsClientPrivateKey" }, "tlsServerCertificate": { "$ref": "#/definitions/certificate" }, "base": { "$ref": "turbot#/definitions/trimmedString" }, "userObjectFilter": { "$ref": "#/definitions/ldapFilter" }, "disabledUserFilter": { "$ref": "turbot#/definitions/trimmedString" }, "userMatchFilter": { "$ref": "#/definitions/ldapFilter" }, "userSearchFilter": { "$ref": "#/definitions/ldapFilter" }, "userSearchAttributes": { "type": "array", "items": { "type": "string" } }, "groupObjectFilter": { "$ref": "#/definitions/ldapFilter" }, "groupSearchFilter": { "$ref": "#/definitions/ldapFilter" }, "groupSyncFilter": { "$ref": "#/definitions/ldapFilter" }, "userCanonicalNameAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "userEmailAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "userDisplayNameAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "userGivenNameAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "userFamilyNameAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "groupCanonicalNameAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "groupMemberOfAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "groupMembershipAttribute": { "$ref": "turbot#/definitions/trimmedString" }, "connectivityTestFilter": { "$ref": "#/definitions/ldapFilter" }, "rejectUnauthorized": { "type": "boolean" }, "disabledGroupFilter": { "$ref": "#/definitions/ldapFilter" } }, "tests": [ { "description": "Valid LDAP Directory", "input": { "directoryType": "ldap", "title": "A Valid Directory", "status": "active", "profileIdTemplate": "{{profile.$source.mail}}", "groupProfileIdTemplate": "{{group.$source.cn}}", "url": "ldap://1.2.3.4", "distinguishedName": "admin", "password": "@dmin", "base": "DC=ad-us-east-2,DC=ad,DC=turbot,DC=com" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/ldapDirectory", "modUri": "tmod:@turbot/turbot-iam" }}
ldapFilter
{ "type": "string", "pattern": "^(.*)$", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/ldapFilter", "modUri": "tmod:@turbot/turbot-iam" }}
ldapPassword
{ "allOf": [ { "$ref": "turbot#/definitions/trimmedString" }, { "x-turbot": { "secret": true } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/ldapPassword", "modUri": "tmod:@turbot/turbot-iam" }}
localDirectory
{ "description": "Information about a local directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "directoryType": { "const": "local" }, "status": { "$ref": "#/definitions/directoryStatus" }, "profileIdTemplate": { "$ref": "#/definitions/profileIdTemplate" }, "groupProfileIdTemplate": { "$ref": "#/definitions/groupProfileIdTemplate" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" }, "description": { "$ref": "turbot#/definitions/description" } }, "tests": [ { "description": "Valid Local Directory", "input": { "title": "A Valid Directory", "directoryType": "local", "status": "Active", "profileIdTemplate": "{{profile.email}}", "groupProfileIdTemplate": "{{group.name}}" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/localDirectory", "modUri": "tmod:@turbot/turbot-iam" }}
localDirectoryGroup
{ "description": "Information about the Group in the Turbot Directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "name": { "$ref": "#/definitions/displayName" }, "description": { "$ref": "turbot#/definitions/description" }, "status": { "$ref": "#/definitions/status" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" } }, "tests": [ { "description": "Valid Turbot Directory Group - minimal", "input": { "name": "Admins", "status": "Active", "title": "Admins" } }, { "description": "Valid Turbot Directory User - full", "input": { "name": "Admins", "status": "Active", "description": "The group to represent Admins in Turbot", "title": "Admins" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/localDirectoryGroup", "modUri": "tmod:@turbot/turbot-iam" }}
localDirectoryUser
{ "description": "Information about a local directory user.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "id": { "$ref": "#/definitions/uuidv4" }, "email": { "$ref": "#/definitions/email" }, "status": { "$ref": "#/definitions/status" }, "displayName": { "$ref": "#/definitions/displayName" }, "givenName": { "$ref": "#/definitions/displayName" }, "middleName": { "$ref": "#/definitions/displayName" }, "familyName": { "$ref": "#/definitions/displayName" }, "picture": { "$ref": "#/definitions/picture" }, "password": { "$ref": "#/definitions/password" }, "passwordTimestamp": { "$ref": "turbot#/definitions/isoTimestamp" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" } }, "tests": [ { "description": "Valid Local Directory User - minimal", "input": { "id": "c97093ae-f387-4dfc-bb47-bba172b6cb41", "email": "someone@somewhere.com", "password": "C0mpl3x1!", "status": "Active", "displayName": "Joe Bloggs", "title": "Joe Bloggs" } }, { "description": "Valid Local Directory User - full", "input": { "id": "c97093ae-f387-4dfc-bb47-bba172b6cb41", "email": "someone@somewhere.com", "password": "C0mpl3x1!", "status": "Active", "displayName": "Joe Bloggs", "givenName": "Joe", "middleName": "Edward", "familyName": "Bloggs", "picture": "https://some.picture.repository.com/WZsdolEQl2s/photo.jpg?sz=50", "title": "Joe Bloggs" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/localDirectoryUser", "modUri": "tmod:@turbot/turbot-iam" }}
nameIdFormat
{ "description": "Defines the name identifier format to request from the identity provider.", "type": "string", "enum": [ "email", "unspecified" ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/nameIdFormat", "modUri": "tmod:@turbot/turbot-iam" }}
oAuthClientID
{ "description": "Client ID setting for an OAuth provider.", "example": "125358849129-njb0arc67o2t3o604ouikdvsgssnu3rf.apps.googleusercontent.com", "$ref": "#/definitions/hostname", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/oAuthClientID", "modUri": "tmod:@turbot/turbot-iam" }}
oAuthClientSecret
{ "description": "Client Secret setting for an OAuth provider.", "example": "fb-tbevaACsBKQHthzba-PH9", "type": "string", "pattern": "^[-_a-zA-Z0-9]+$", "minLength": 1, "maxLength": 64, "x-turbot": { "secret": true }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/oAuthClientSecret", "modUri": "tmod:@turbot/turbot-iam" }}
password
{ "description": "A secret password, usually highly complex and hidden from view.", "example": "ASf94nadf7ydbcidAOSDFbida", "type": "string", "minLength": 1, "maxLength": 256, "x-turbot": { "secret": true }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/password", "modUri": "tmod:@turbot/turbot-iam" }}
picture
{ "type": "string", "format": "uri", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/picture", "modUri": "tmod:@turbot/turbot-iam" }}
profile
{ "description": "Profile for a user in a directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "externalId": { "type": "string" }, "profileId": { "$ref": "turbot#/definitions/trimmedString" }, "lastLoginTimestamp": { "$ref": "turbot#/definitions/isoTimestamp" }, "status": { "$ref": "#/definitions/status" }, "email": { "$ref": "#/definitions/email" }, "displayName": { "$ref": "#/definitions/displayName" }, "givenName": { "$ref": "#/definitions/displayName" }, "middleName": { "$ref": "#/definitions/displayName" }, "familyName": { "$ref": "#/definitions/displayName" }, "picture": { "$ref": "#/definitions/picture" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" } }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/profile", "modUri": "tmod:@turbot/turbot-iam" }}
profileIdTemplate
{ "description": "Template to calculate the ID for a profile based on a directory user.", "$ref": "turbot#/definitions/trimmedString", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/profileIdTemplate", "modUri": "tmod:@turbot/turbot-iam" }}
rightDefinition
{ "description": "Internal format for Turbot Rights registrations.", "type": "object", "properties": { "level": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "#/permission/levels/" }, "type": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "#/permission/types/" }, "metadata": { "type": "object", "properties": { "roleName": { "type": "string" } } } }, "required": [ "level", "type" ], "additionalProperties": false, "tests": [ { "description": "Valid right definition", "input": { "level": "@turbot/turbot-iam#/permission/levels/admin", "type": "#/permission/types/bar" } }, { "description": "Invalid - Levels includes a non #/permission/levels/* path", "expected": false, "input": { "level": "#/definitions/foo", "type": "#/permission/types/foo" } }, { "description": "Invalid - Types includes a non #/permission/types/* path", "expected": false, "input": { "level": "#/permission/levels/user", "type": "#/definitions/bar" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/rightDefinition", "modUri": "tmod:@turbot/turbot-iam" }}
rightDefinitionList
{ "description": "Internal format for Turbot Rights registrations.", "type": "array", "items": { "description": "Internal format for Turbot Rights registrations.", "type": "object", "properties": { "level": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "#/permission/levels/" }, "type": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "#/permission/types/" }, "metadata": { "type": "object", "properties": { "roleName": { "type": "string" } } } }, "required": [ "level", "type" ], "additionalProperties": false, "tests": [ { "description": "Valid right definition", "input": { "level": "@turbot/turbot-iam#/permission/levels/admin", "type": "#/permission/types/bar" } }, { "description": "Invalid - Levels includes a non #/permission/levels/* path", "expected": false, "input": { "level": "#/definitions/foo", "type": "#/permission/types/foo" } }, { "description": "Invalid - Types includes a non #/permission/types/* path", "expected": false, "input": { "level": "#/permission/levels/user", "type": "#/definitions/bar" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/rightDefinition", "modUri": "tmod:@turbot/turbot-iam" } }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/rightDefinitionList", "modUri": "tmod:@turbot/turbot-iam" }}
samlDirectory
{ "description": "Information about a SAML directory.", "type": "object", "properties": { "description": { "$ref": "turbot#/definitions/description" }, "directoryType": { "const": "saml" }, "status": { "$ref": "#/definitions/directoryStatus" }, "entryPoint": { "$ref": "#/definitions/directoryEntryPoint" }, "issuer": { "$ref": "#/definitions/directoryIssuer" }, "certificate": { "$ref": "#/definitions/certificate" }, "profileIdTemplate": { "$ref": "#/definitions/profileIdTemplate" }, "groupProfileIdTemplate": { "$ref": "#/definitions/groupProfileIdTemplate" }, "nameIdFormat": { "$ref": "#/definitions/nameIdFormat" }, "signRequests": { "$ref": "#/definitions/signRequests" }, "signaturePrivateKey": { "$ref": "#/definitions/signaturePrivateKey" }, "signatureAlgorithm": { "$ref": "#/definitions/directorySignatureAlgorithm" }, "allowIdpInitiatedSSO": { "type": "boolean" }, "requiredSignedAuthenticationResponse": { "type": "boolean" }, "requiredSignedAssertionResponse": { "type": "boolean" }, "strictAudienceValidation": { "type": "boolean" }, "allowGroupSyncing": { "type": "boolean" }, "profileGroupsAttribute": { "type": "string" }, "groupFilter": { "type": "string" } }, "tests": [ { "description": "Valid SAML Directory", "input": { "title": "A Valid SAML Directory", "description": "A Valid SAML Directory for testing.", "status": "New", "directoryType": "saml", "entryPoint": "https://example.com/myapp/sso/saml", "issuer": "https://example.com/myapp/sso/saml", "allowIdpInitiatedSSO": false, "requiredSignedAuthenticationResponse": false, "requiredSignedAssertionResponse": false, "strictAudienceValidation": false, "profileIdTemplate": "{{profile.email}}", "groupProfileIdTemplate": "{{group.name}}", "certificate": "-----BEGIN CERTIFICATE-----\nMIIDoDCCAoigAwIBAgIGAV2Tqqa1MA0GCSqGSIb3DQEBCwUAMIGQMQswCQYDVQQGEwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxETAPBgNVBAMMCHR1cmJvdGhxMRwwGgYJKoZIhvcNAQkBFg1p\nbmZvQG9rdGEuY29tMB4XDTE3MDczMDEzMjI0MFoXDTI3MDczMDEzMjM0MFowgZAxCzAJBgNVBAYT\nAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQK\nDARPa3RhMRQwEgYDVQQLDAtTU09Qcm92aWRlcjERMA8GA1UEAwwIdHVyYm90aHExHDAaBgkqhkiG\n9w0BCQEWDWluZm9Ab2t0YS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYHhIn\nVUFP4NRWlqwplgSo7esXlXKiedkTf8+N6AXBah1xIiMubCRXBuDgtjz1ZwDpGa/XY8YtKZGABY+S\nP772WXNMaYc2RNdxSbz54W4TFx/we5LiGPCGmMKtSZHFBBGwGHvSul/NWEJ1TU8nJ1hdh2UBgjf2\nPm6XZAayTkCx15CL/+NfLSgNnHQlcNL+z7xVK2kyqFV1tOmy846A2NtqlluXkrJp0scHC5ryq/cR\n16KnbnOE9tq/I2Z30cHsqqC0kKHfJTBdbOhJcXH1oKObUOcKc1tFhLjUC4J/grZ8e2MVKljtug2j\nSnLlbTbrdG+pPqdCFNkSdfBaQWpZnp1jAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIUJBfEt/Job\nKQljFqegHcJK1MWR0UbdTfVC4jDjX5yItG2igmwIvq0DaHWahrTPwdP3u2yDMyBZTfwwqzgHMg1s\n/OPCOddw+8m0E7n8p37PHtrzS7qlXHjJTC+Ihg/6QOhhHKmXnUN3ic2L4RdaCuIOBHS0qo8H3Mhj\nnSqAXYKBajn2MDQYOTZMPTc4PqQNtL6cCa4RNUk3G+chlhiCzQ/Nb6hKCCHEuhCoIc6htnIcoWmj\n7WWR2Piy5GKSibZ4GQgcLgdu7jTrkbYr56DPzDUEEWa3jCcl/xqyAjWdsX9NCBf4o3nSIdwCAMJZ\nSMbqN5lCzivATVQPxuAPS9fHbSI=\n-----END CERTIFICATE-----", "signaturePrivateKey": "-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/samlDirectory", "modUri": "tmod:@turbot/turbot-iam" }}
secretKey
{ "allOf": [ { "$ref": "#/definitions/uuidv4" }, { "description": "Secret key for a Turbot access key pair.", "x-turbot": { "secret": true } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/secretKey", "modUri": "tmod:@turbot/turbot-iam" }}
signaturePrivateKey
{ "type": "string", "maxLength": 2097152, "minLength": 1, "pattern": "(-{5}BEGIN (RSA )?PRIVATE KEY-{5})?([A-Za-z0-9/\n/+=/]*)(-{5}END (RSA )?PRIVATE KEY-{5})?", "x-turbot": { "secret": true }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/signaturePrivateKey", "modUri": "tmod:@turbot/turbot-iam" }}
signRequests
{ "type": "boolean", "tests": [ { "input": false }, { "input": true }, { "description": "invalid - array", "input": [], "expected": false }, { "description": "invalid - string", "input": "", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/signRequests", "modUri": "tmod:@turbot/turbot-iam" }}
sshKey
{ "description": "An SSH Key, not including the private key.", "example": { "fingerprint": "78:cf:8e:1a:be:6d:65:5c:19:04:88:a6:d1:c9:8a:3f", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmAO/njb8ZG5zEPgEpB39DHtwBfwMyGuh/+Ihjv8ww60c2zE+skbMsMNIwBiOG7WCQun4qEckY57ki6lYM0HFTc3FYseT5XFCMUugwj5HK5g7SjFXan+6mFKjv0HOF7HeZREz18cTCDAhkwyTFwyM3vK76FNDoPSfq6OL6fSgVJroL6OHnyrqfYJzpkOFiTRjw3VkqZDEId8kBAoTi8NCUxK33Nc/olcf58tVr2m94uwOt8EwhKFpf1+hSzgHDRxqODS6WsoE+cGIVNPBb2E7jZJF/LIH/SNyuK7yeivTEIT0J2+eFwQHQd5IMShuW2tDaHv9mecPzSWt6NUJCGcFd joe@example.com", "$signaturePrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEAReallyComplexLongStringShortenedHere\nAReallyComplexLongStringShortenedHere===\n-----END RSA PRIVATE KEY-----", "createTimestamp": "2017-01-10T18:50:30.364Z", "status": "Active" }, "properties": { "title": { "$ref": "turbot#/definitions/title" }, "fingerprint": { "$ref": "#/definitions/sshKeyFingerprint" }, "publicKey": { "$ref": "#/definitions/sshPublicKey" }, "status": { "$ref": "#/definitions/status" }, "turbot": { "$ref": "turbot#/definitions/resourceMetadata" } }, "required": [ "title", "publicKey", "fingerprint", "status" ], "additionalProperties": false, "tests": [ { "description": "Valid", "input": { "title": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "fingerprint": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "status": "Active" } }, { "description": "Valid - Without AWS Fingerprint", "input": { "title": "SSH Key (2e:45:5f:72)", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDM9+sNUriTVCJfoNochPGQvzNy95BdeBa4x0n6jWii4LY2qIPUTwblkzTJ+qqwm1Wqrl5WHvzI6kdbbcS+MgYBaWmw248IS/oPNSjlMPwpO1MA1zxwpRMj+HUqyqz7J3PN4txo4mYJGKjzzYB1MgEwdMYiLFJPmicPx57AdNyja/+kg7we7CCSPrrCVSkfpHd0OKAo/VN1ESIWJCpRsXMqrVlDJr4lAfXohmDflXjfDKlY0dXD9PDosGQcXkqsBv6FU326eAN9IY8i+X5qhY8L6i77Jnmcj6GUtlUWsa7ZShHNHzVL9DtiNd/pk3N+xUT5PhbDxj0NZSiCzAGiI+er aaa@jf.turbot.local", "fingerprint": "2e:45:5f:72:fc:30:e9:22:d6:c5:76:a9:1a:69:93:f0", "status": "Active" } }, { "description": "Invalid - Missing title", "input": { "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "fingerprint": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "status": "Active" }, "expected": false }, { "description": "Invalid - Missing public key", "input": { "title": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "fingerprint": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "status": "Active" }, "expected": false }, { "description": "Invalid - Missing fingerprint", "input": { "title": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "status": "Active" }, "expected": false }, { "description": "Invalid - Missing status", "input": { "title": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "fingerprint": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8" }, "expected": false }, { "description": "Invalid - Unknown property", "input": { "title": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "fingerprint": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "status": "Active", "foo": "bar" }, "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/sshKey", "modUri": "tmod:@turbot/turbot-iam" }}
sshKeyFingerprint
{ "description": "An SSH key fingerprint string.", "example": "68:df:b2:22:d8:43:5d:36:75:c1:d8:59:c0:8c:22:e8", "type": "string", "pattern": "^[a-f0-9]{2}(:[a-f0-9]{2}){15}$", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/sshKeyFingerprint", "modUri": "tmod:@turbot/turbot-iam" }}
sshPublicKey
{ "description": "An SSH public key string.", "example": "ssh-rsa AAAAB3NzaC1yc2EAReallyComplexLongStringShortenedHere/dDlDJtqc comment_here", "type": "string", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/sshPublicKey", "modUri": "tmod:@turbot/turbot-iam" }}
status
{ "description": "Defines the different statuses for IAM resources in Turbot.", "type": "string", "enum": [ "Active", "Inactive" ], "tests": [ { "description": "Valid status (Active)", "input": "Active" }, { "description": "Valid status (Inactive)", "input": "Inactive" }, { "description": "Invalid status (SomeUnknownStatus)", "input": "SomeUnknownStatus", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/status", "modUri": "tmod:@turbot/turbot-iam" }}
tlsClientPrivateKey
{ "type": "string", "maxLength": 2097152, "minLength": 1, "pattern": "(-{5}BEGIN (RSA )?PRIVATE KEY-{5})?([A-Za-z0-9/\n/+=/]*)(-{5}END (RSA )?PRIVATE KEY-{5})?", "x-turbot": { "secret": true }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/tlsClientPrivateKey", "modUri": "tmod:@turbot/turbot-iam" }}
turbotDirectory
{ "description": "Information about a Turbot directory.", "type": "object", "properties": { "title": { "$ref": "turbot#/definitions/title" }, "description": { "$ref": "turbot#/definitions/description" }, "directoryType": { "const": "turbot" }, "status": { "$ref": "#/definitions/directoryStatus" }, "profileIdTemplate": { "$ref": "#/definitions/profileIdTemplate" }, "server": { "$ref": "#/definitions/turbotDirectoryServer" } }, ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/turbotDirectory", "modUri": "tmod:@turbot/turbot-iam" }}
turbotDirectoryServer
{ "description": "The server to connect to for authentication via Turbot", "type": "string", ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/turbotDirectoryServer", "modUri": "tmod:@turbot/turbot-iam" }}
turbotLevelDefinition
{ "description": "Internal format for Turbot Levels.", "type": "object", "properties": { "level": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "user|metadata|readonly|admin|owner|operator" }, "type": { "type": "string", "format": "uri-reference", ".turbot": { "uri": "tmod:@turbot/turbot#/definitions/$ref", "modUri": "tmod:@turbot/turbot" }, "pattern": "^tmod:@turbot/turbot" } }, "required": [ "level", "type" ], "additionalProperties": false, "tests": [ { "description": "Valid level definition", "input": { "level": "tmod:@turbot/turbot-iam#/permission/levels/admin", "type": "tmod:@turbot/turbot-iam#/permission/types/turbot" } }, { "description": "invalid type definition", "input": { "level": "tmod:@turbot/turbot-iam#/permission/levels/admin", "type": "tmod:@turbot/azure-s3#/permission/types/s3" }, "expected": false }, { "description": "Invalid - Levels includes a non #/permission/levels/* path", "expected": false, "input": { "level": "#/definitions/foo", "type": "#/permission/types/foo" } }, { "description": "Invalid - Types includes a non #/permission/types/* path", "expected": false, "input": { "level": "#/permission/levels/user", "type": "#/definitions/bar" } } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/turbotLevelDefinition", "modUri": "tmod:@turbot/turbot-iam" }}
turbotPermissionLevelReference
{ "allOf": [ { "$ref": "turbot#/definitions/permissionLevelReference" }, { "pattern": "user|metadata|readonly|admin|owner|operator" } ], "tests": [ { "description": "valid permission type", "input": "tmod:@turbot/turbot#/permission/levels/admin" }, { "description": "invalid - turbot permission type", "input": "tmod:@turbot/azure-storage#/permission/types/storage", "expected": false }, { "description": "invalid - category", "input": "tmod:@turbot/aws-s3#/control/types/bucketApproved", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/turbotPermissionLevelReference", "modUri": "tmod:@turbot/turbot-iam" }}
turbotPermissionTypeReference
{ "allOf": [ { "$ref": "turbot#/definitions/permissionTypeReference" }, { "pattern": "^tmod:@turbot/turbot" } ], "tests": [ { "description": "valid permission type", "input": "tmod:@turbot/turbot#/permission/types/s3" }, { "description": "invalid - turbot permission type", "input": "tmod:@turbot/azure-storage#/permission/types/storage", "expected": false }, { "description": "invalid - category", "input": "tmod:@turbot/aws-s3#/control/types/bucketApproved", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/turbotPermissionTypeReference", "modUri": "tmod:@turbot/turbot-iam" }}
uuidv4
{ "description": "Unique identifier in <a href=\"https://www.uuidgenerator.net/version4\">UUID Version 4</a> format.", "example": "c97093ae-f387-4dfc-bb47-bba172b6cb41", "type": "string", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", "tests": [ { "description": "Valid", "input": "c97093ae-f387-4dfc-bb47-bba172b6cb41" }, { "description": "Invalid - too short", "input": "c97093ae-f387-4dfc-bb47-bba172b6cb4", "expected": false }, { "description": "Invalid - special character", "input": "c97093ae-f387-4dfc-bb47-bba172b6cb4@", "expected": false }, { "description": "Invalid - incorrect separator", "input": "c97093ae/f387/4dfc/bb47/bba172b6cb41", "expected": false } ], ".turbot": { "uri": "tmod:@turbot/turbot-iam#/definitions/uuidv4", "modUri": "tmod:@turbot/turbot-iam" }}