{"files":{"SKILL.md":"---\nname: finspace-public-api\ndescription: \"FinSpace Public API skill. Use when working with FinSpace Public for permission-group, datasets, datasetsv2. Covers 31 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# FinSpace Public API\nAPI version: 2020-07-13\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /credentials/programmatic -- request programmatic credentials to use with finspace sdk. for more information, see step 2. access credentials programmatically using iam access key id and secret access key.\n3. POST /permission-group/{permissionGroupId}/users/{userId} -- create first user\n\n## Endpoints\n31 endpoints across 6 groups. See references/api-spec.lap for full details.\n\n### Permission-group\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /permission-group/{permissionGroupId}/users/{userId} | Adds a user to a permission group to grant permissions for actions a user can perform in FinSpace. |\n| POST | /permission-group | Creates a group of permissions for various actions that a user can perform in FinSpace. |\n| DELETE | /permission-group/{permissionGroupId} | Deletes a permission group. This action is irreversible. |\n| DELETE | /permission-group/{permissionGroupId}/users/{userId} | Removes a user from a permission group. |\n| GET | /permission-group/{permissionGroupId} | Retrieves the details of a specific permission group. |\n| GET | /permission-group | Lists all available permission groups in FinSpace. |\n| GET | /permission-group/{permissionGroupId}/users | Lists details of all the users in a specific permission group. |\n| PUT | /permission-group/{permissionGroupId} | Modifies the details of a permission group. You cannot modify a permissionGroupID. |\n\n### Datasets\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /datasets/{datasetId}/changesetsv2 | Creates a new Changeset in a FinSpace Dataset. |\n| POST | /datasets/{datasetId}/dataviewsv2 | Creates a Dataview for a Dataset. |\n| GET | /datasets/{datasetId}/changesetsv2/{changesetId} | Get information about a Changeset. |\n| GET | /datasets/{datasetId}/dataviewsv2/{dataviewId} | Gets information about a Dataview. |\n| POST | /datasets/{datasetId}/dataviewsv2/{dataviewId}/external-access-details | Returns the credentials to access the external Dataview from an S3 location. To call this API:   You must retrieve the programmatic credentials.   You must be a member of a FinSpace user group, where the dataset that you want to access has Read Dataset Data permissions. |\n| GET | /datasets/{datasetId}/changesetsv2 | Lists the FinSpace Changesets for a Dataset. |\n| GET | /datasets/{datasetId}/dataviewsv2 | Lists all available Dataviews for a Dataset. |\n| PUT | /datasets/{datasetId}/changesetsv2/{changesetId} | Updates a FinSpace Changeset. |\n\n### Datasetsv2\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /datasetsv2 | Creates a new FinSpace Dataset. |\n| DELETE | /datasetsv2/{datasetId} | Deletes a FinSpace Dataset. |\n| GET | /datasetsv2/{datasetId} | Returns information about a Dataset. |\n| GET | /datasetsv2 | Lists all of the active Datasets that a user has access to. |\n| PUT | /datasetsv2/{datasetId} | Updates a FinSpace Dataset. |\n\n### User\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /user | Creates a new user in FinSpace. |\n| POST | /user/{userId}/disable | Denies access to the FinSpace web application and API for the specified user. |\n| POST | /user/{userId}/enable | Allows the specified user to access the FinSpace web application and API. |\n| GET | /user/{userId} | Retrieves details for a specific user. |\n| GET | /user/{userId}/permission-groups | Lists all the permission groups that are associated with a specific user. |\n| GET | /user | Lists all available users in FinSpace. |\n| POST | /user/{userId}/password | Resets the password for a specified user ID and generates a temporary one. Only a superuser can reset password for other users. Resetting the password immediately invalidates the previous password associated with the user. |\n| PUT | /user/{userId} | Modifies the details of the specified user. You cannot update the userId for a user. |\n\n### Credentials\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /credentials/programmatic | Request programmatic credentials to use with FinSpace SDK. For more information, see Step 2. Access credentials programmatically using IAM access key id and secret access key. |\n\n### WorkingLocationV1\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /workingLocationV1 | A temporary Amazon S3 location, where you can copy your files from a source location to stage or use as a scratch space in FinSpace notebook. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a changesetsv2?\" -> POST /datasets/{datasetId}/changesetsv2\n- \"Create a dataviewsv2?\" -> POST /datasets/{datasetId}/dataviewsv2\n- \"Create a datasetsv2?\" -> POST /datasetsv2\n- \"Create a permission-group?\" -> POST /permission-group\n- \"Create a user?\" -> POST /user\n- \"Delete a datasetsv2?\" -> DELETE /datasetsv2/{datasetId}\n- \"Delete a permission-group?\" -> DELETE /permission-group/{permissionGroupId}\n- \"Create a disable?\" -> POST /user/{userId}/disable\n- \"Delete a user?\" -> DELETE /permission-group/{permissionGroupId}/users/{userId}\n- \"Create a enable?\" -> POST /user/{userId}/enable\n- \"Get changesetsv2 details?\" -> GET /datasets/{datasetId}/changesetsv2/{changesetId}\n- \"Get dataviewsv2 details?\" -> GET /datasets/{datasetId}/dataviewsv2/{dataviewId}\n- \"Get datasetsv2 details?\" -> GET /datasetsv2/{datasetId}\n- \"Create a external-access-detail?\" -> POST /datasets/{datasetId}/dataviewsv2/{dataviewId}/external-access-details\n- \"Get permission-group details?\" -> GET /permission-group/{permissionGroupId}\n- \"List all programmatic?\" -> GET /credentials/programmatic\n- \"Get user details?\" -> GET /user/{userId}\n- \"Create a workingLocationV1?\" -> POST /workingLocationV1\n- \"List all changesetsv2?\" -> GET /datasets/{datasetId}/changesetsv2\n- \"List all dataviewsv2?\" -> GET /datasets/{datasetId}/dataviewsv2\n- \"List all datasetsv2?\" -> GET /datasetsv2\n- \"List all permission-group?\" -> GET /permission-group\n- \"List all permission-groups?\" -> GET /user/{userId}/permission-groups\n- \"List all user?\" -> GET /user\n- \"List all users?\" -> GET /permission-group/{permissionGroupId}/users\n- \"Create a password?\" -> POST /user/{userId}/password\n- \"Update a changesetsv2?\" -> PUT /datasets/{datasetId}/changesetsv2/{changesetId}\n- \"Update a datasetsv2?\" -> PUT /datasetsv2/{datasetId}\n- \"Update a permission-group?\" -> PUT /permission-group/{permissionGroupId}\n- \"Update a user?\" -> PUT /user/{userId}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api FinSpace Public API\n@version 2020-07-13\n@auth AWS SigV4\n@endpoints 31\n@hint download_for_search\n@toc permission-group(8), datasets(8), datasetsv2(5), user(8), credentials(1), workingLocationV1(1)\n\n@group permission-group\n@endpoint POST /permission-group/{permissionGroupId}/users/{userId}\n@desc Adds a user to a permission group to grant permissions for actions a user can perform in FinSpace.\n@required {permissionGroupId: str, userId: str}\n@optional {clientToken: str}\n@returns(200) {statusCode: int?}\n\n@endgroup\n\n@group datasets\n@endpoint POST /datasets/{datasetId}/changesetsv2\n@desc Creates a new Changeset in a FinSpace Dataset.\n@required {datasetId: str, changeType: str, sourceParams: map<str,str>, formatParams: map<str,str>}\n@optional {clientToken: str}\n@returns(200) {datasetId: str?, changesetId: str?}\n\n@endpoint POST /datasets/{datasetId}/dataviewsv2\n@desc Creates a Dataview for a Dataset.\n@required {datasetId: str, destinationTypeParams: DataViewDestinationTypeParams}\n@optional {clientToken: str, autoUpdate: bool, sortColumns: [str], partitionColumns: [str], asOfTimestamp: int(i64)}\n@returns(200) {datasetId: str?, dataViewId: str?}\n\n@endgroup\n\n@group datasetsv2\n@endpoint POST /datasetsv2\n@desc Creates a new FinSpace Dataset.\n@required {datasetTitle: str, kind: str, permissionGroupParams: PermissionGroupParams}\n@optional {clientToken: str, datasetDescription: str, ownerInfo: DatasetOwnerInfo, alias: str, schemaDefinition: SchemaUnion}\n@returns(200) {datasetId: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint POST /permission-group\n@desc Creates a group of permissions for various actions that a user can perform in FinSpace.\n@required {name: str, applicationPermissions: [str]}\n@optional {description: str, clientToken: str}\n@returns(200) {permissionGroupId: str?}\n\n@endgroup\n\n@group user\n@endpoint POST /user\n@desc Creates a new user in FinSpace.\n@required {emailAddress: str, type: str}\n@optional {firstName: str, lastName: str, apiAccess: str, apiAccessPrincipalArn: str, clientToken: str}\n@returns(200) {userId: str?}\n\n@endgroup\n\n@group datasetsv2\n@endpoint DELETE /datasetsv2/{datasetId}\n@desc Deletes a FinSpace Dataset.\n@required {datasetId: str}\n@optional {clientToken: str}\n@returns(200) {datasetId: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint DELETE /permission-group/{permissionGroupId}\n@desc Deletes a permission group. This action is irreversible.\n@required {permissionGroupId: str}\n@optional {clientToken: str}\n@returns(200) {permissionGroupId: str?}\n\n@endgroup\n\n@group user\n@endpoint POST /user/{userId}/disable\n@desc Denies access to the FinSpace web application and API for the specified user.\n@required {userId: str}\n@optional {clientToken: str}\n@returns(200) {userId: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint DELETE /permission-group/{permissionGroupId}/users/{userId}\n@desc Removes a user from a permission group.\n@required {permissionGroupId: str, userId: str}\n@optional {clientToken: str}\n@returns(200) {statusCode: int?}\n\n@endgroup\n\n@group user\n@endpoint POST /user/{userId}/enable\n@desc Allows the specified user to access the FinSpace web application and API.\n@required {userId: str}\n@optional {clientToken: str}\n@returns(200) {userId: str?}\n\n@endgroup\n\n@group datasets\n@endpoint GET /datasets/{datasetId}/changesetsv2/{changesetId}\n@desc Get information about a Changeset.\n@required {datasetId: str, changesetId: str}\n@returns(200) {changesetId: str?, changesetArn: str?, datasetId: str?, changeType: str?, sourceParams: map<str,str>?, formatParams: map<str,str>?, createTime: int(i64)?, status: str?, errorInfo: ChangesetErrorInfo?{errorMessage: str?, errorCategory: str?}, activeUntilTimestamp: int(i64)?, activeFromTimestamp: int(i64)?, updatesChangesetId: str?, updatedByChangesetId: str?}\n\n@endpoint GET /datasets/{datasetId}/dataviewsv2/{dataviewId}\n@desc Gets information about a Dataview.\n@required {dataViewId: str, datasetId: str}\n@returns(200) {autoUpdate: bool?, partitionColumns: [str]?, datasetId: str?, asOfTimestamp: int(i64)?, errorInfo: DataViewErrorInfo?{errorMessage: str?, errorCategory: str?}, lastModifiedTime: int(i64)?, createTime: int(i64)?, sortColumns: [str]?, dataViewId: str?, dataViewArn: str?, destinationTypeParams: DataViewDestinationTypeParams?{destinationType: str, s3DestinationExportFileFormat: str?, s3DestinationExportFileFormatOptions: map<str, str>?: any}, status: str?}\n\n@endgroup\n\n@group datasetsv2\n@endpoint GET /datasetsv2/{datasetId}\n@desc Returns information about a Dataset.\n@required {datasetId: str}\n@returns(200) {datasetId: str?, datasetArn: str?, datasetTitle: str?, kind: str?, datasetDescription: str?, createTime: int(i64)?, lastModifiedTime: int(i64)?, schemaDefinition: SchemaUnion?{tabularSchemaConfig: SchemaDefinition?{columns: [ColumnDefinition]?, primaryKeyColumns: [str]?}}, alias: str?, status: str?}\n\n@endgroup\n\n@group datasets\n@endpoint POST /datasets/{datasetId}/dataviewsv2/{dataviewId}/external-access-details\n@desc Returns the credentials to access the external Dataview from an S3 location. To call this API:   You must retrieve the programmatic credentials.   You must be a member of a FinSpace user group, where the dataset that you want to access has Read Dataset Data permissions.\n@required {dataViewId: str, datasetId: str}\n@returns(200) {credentials: AwsCredentials?{accessKeyId: str?, secretAccessKey: str?, sessionToken: str?, expiration: int(i64)?}, s3Location: S3Location?{bucket: str, key: str}}\n\n@endgroup\n\n@group permission-group\n@endpoint GET /permission-group/{permissionGroupId}\n@desc Retrieves the details of a specific permission group.\n@required {permissionGroupId: str}\n@returns(200) {permissionGroup: PermissionGroup?{permissionGroupId: str?, name: str?, description: str?, applicationPermissions: [str]?, createTime: int(i64)?, lastModifiedTime: int(i64)?, membershipStatus: str?}}\n\n@endgroup\n\n@group credentials\n@endpoint GET /credentials/programmatic\n@desc Request programmatic credentials to use with FinSpace SDK. For more information, see Step 2. Access credentials programmatically using IAM access key id and secret access key.\n@required {environmentId: str}\n@optional {durationInMinutes: int(i64)}\n@returns(200) {credentials: Credentials?{accessKeyId: str?, secretAccessKey: str?, sessionToken: str?}, durationInMinutes: int(i64)?}\n\n@endgroup\n\n@group user\n@endpoint GET /user/{userId}\n@desc Retrieves details for a specific user.\n@required {userId: str}\n@returns(200) {userId: str?, status: str?, firstName: str?, lastName: str?, emailAddress: str?, type: str?, apiAccess: str?, apiAccessPrincipalArn: str?, createTime: int(i64)?, lastEnabledTime: int(i64)?, lastDisabledTime: int(i64)?, lastModifiedTime: int(i64)?, lastLoginTime: int(i64)?}\n\n@endgroup\n\n@group workingLocationV1\n@endpoint POST /workingLocationV1\n@desc A temporary Amazon S3 location, where you can copy your files from a source location to stage or use as a scratch space in FinSpace notebook.\n@optional {locationType: str}\n@returns(200) {s3Uri: str?, s3Path: str?, s3Bucket: str?}\n\n@endgroup\n\n@group datasets\n@endpoint GET /datasets/{datasetId}/changesetsv2\n@desc Lists the FinSpace Changesets for a Dataset.\n@required {datasetId: str}\n@optional {maxResults: int, nextToken: str}\n@returns(200) {changesets: [ChangesetSummary]?, nextToken: str?}\n\n@endpoint GET /datasets/{datasetId}/dataviewsv2\n@desc Lists all available Dataviews for a Dataset.\n@required {datasetId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {nextToken: str?, dataViews: [DataViewSummary]?}\n\n@endgroup\n\n@group datasetsv2\n@endpoint GET /datasetsv2\n@desc Lists all of the active Datasets that a user has access to.\n@optional {nextToken: str, maxResults: int}\n@returns(200) {datasets: [Dataset]?, nextToken: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint GET /permission-group\n@desc Lists all available permission groups in FinSpace.\n@required {maxResults: int}\n@optional {nextToken: str}\n@returns(200) {permissionGroups: [PermissionGroup]?, nextToken: str?}\n\n@endgroup\n\n@group user\n@endpoint GET /user/{userId}/permission-groups\n@desc Lists all the permission groups that are associated with a specific user.\n@required {userId: str, maxResults: int}\n@optional {nextToken: str}\n@returns(200) {permissionGroups: [PermissionGroupByUser]?, nextToken: str?}\n\n@endpoint GET /user\n@desc Lists all available users in FinSpace.\n@required {maxResults: int}\n@optional {nextToken: str}\n@returns(200) {users: [User]?, nextToken: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint GET /permission-group/{permissionGroupId}/users\n@desc Lists details of all the users in a specific permission group.\n@required {permissionGroupId: str, maxResults: int}\n@optional {nextToken: str}\n@returns(200) {users: [UserByPermissionGroup]?, nextToken: str?}\n\n@endgroup\n\n@group user\n@endpoint POST /user/{userId}/password\n@desc Resets the password for a specified user ID and generates a temporary one. Only a superuser can reset password for other users. Resetting the password immediately invalidates the previous password associated with the user.\n@required {userId: str}\n@optional {clientToken: str}\n@returns(200) {userId: str?, temporaryPassword: str?}\n\n@endgroup\n\n@group datasets\n@endpoint PUT /datasets/{datasetId}/changesetsv2/{changesetId}\n@desc Updates a FinSpace Changeset.\n@required {datasetId: str, changesetId: str, sourceParams: map<str,str>, formatParams: map<str,str>}\n@optional {clientToken: str}\n@returns(200) {changesetId: str?, datasetId: str?}\n\n@endgroup\n\n@group datasetsv2\n@endpoint PUT /datasetsv2/{datasetId}\n@desc Updates a FinSpace Dataset.\n@required {datasetId: str, datasetTitle: str, kind: str}\n@optional {clientToken: str, datasetDescription: str, alias: str, schemaDefinition: SchemaUnion}\n@returns(200) {datasetId: str?}\n\n@endgroup\n\n@group permission-group\n@endpoint PUT /permission-group/{permissionGroupId}\n@desc Modifies the details of a permission group. You cannot modify a permissionGroupID.\n@required {permissionGroupId: str}\n@optional {name: str, description: str, applicationPermissions: [str], clientToken: str}\n@returns(200) {permissionGroupId: str?}\n\n@endgroup\n\n@group user\n@endpoint PUT /user/{userId}\n@desc Modifies the details of the specified user. You cannot update the userId for a user.\n@required {userId: str}\n@optional {type: str, firstName: str, lastName: str, apiAccess: str, apiAccessPrincipalArn: str, clientToken: str}\n@returns(200) {userId: str?}\n\n@endgroup\n\n@end\n"}}