import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement , Operator } from '../shared' ; param sid export class Groundstation extends PolicyStatement { public servicePrefix = 'groundstation' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to cancel a contact
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CancelContact.html
     */ public toCancelContact ( ) { return this . to ( 'CancelContact' ) ; } /**
     * Grants permission to create a configuration
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateConfig.html
     */ public toCreateConfig ( ) { return this . to ( 'CreateConfig' ) ; } /**
     * Grants permission to create a data flow endpoint group
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateDataflowEndpointGroup.html
     */ public toCreateDataflowEndpointGroup ( ) { return this . to ( 'CreateDataflowEndpointGroup' ) ; } /**
     * Grants permission to create a mission profile
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateMissionProfile.html
     */ public toCreateMissionProfile ( ) { return this . to ( 'CreateMissionProfile' ) ; } /**
     * Grants permission to delete a config
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteConfig.html
     */ public toDeleteConfig ( ) { return this . to ( 'DeleteConfig' ) ; } /**
     * Grants permission to delete a data flow endpoint group
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteDataflowEndpointGroup.html
     */ public toDeleteDataflowEndpointGroup ( ) { return this . to ( 'DeleteDataflowEndpointGroup' ) ; } /**
     * Grants permission to delete a mission profile
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteMissionProfile.html
     */ public toDeleteMissionProfile ( ) { return this . to ( 'DeleteMissionProfile' ) ; } /**
     * Grants permission to describe a contact
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeContact.html
     */ public toDescribeContact ( ) { return this . to ( 'DescribeContact' ) ; } /**
     * Grants permission to return a configuration
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetConfig.html
     */ public toGetConfig ( ) { return this . to ( 'GetConfig' ) ; } /**
     * Grants permission to return a data flow endpoint group
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetDataflowEndpointGroup.html
     */ public toGetDataflowEndpointGroup ( ) { return this . to ( 'GetDataflowEndpointGroup' ) ; } /**
     * Grants permission to return minutes usage
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetMinuteUsage.html
     */ public toGetMinuteUsage ( ) { return this . to ( 'GetMinuteUsage' ) ; } /**
     * Grants permission to retrieve a mission profile
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetMissionProfile.html
     */ public toGetMissionProfile ( ) { return this . to ( 'GetMissionProfile' ) ; } /**
     * Grants permission to return information about a satellite
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html
     */ public toGetSatellite ( ) { return this . to ( 'GetSatellite' ) ; } /**
     * Grants permission to return a list of past configurations
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListConfigs.html
     */ public toListConfigs ( ) { return this . to ( 'ListConfigs' ) ; } /**
     * Grants permission to return a list of contacts
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html
     */ public toListContacts ( ) { return this . to ( 'ListContacts' ) ; } /**
     * Grants permission to list data flow endpoint groups
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListDataflowEndpointGroups.html
     */ public toListDataflowEndpointGroups ( ) { return this . to ( 'ListDataflowEndpointGroups' ) ; } /**
     * Grants permission to list ground stations
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListGroundStations.html
     */ public toListGroundStations ( ) { return this . to ( 'ListGroundStations' ) ; } /**
     * Grants permission to return a list of mission profiles
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListMissionProfiles.html
     */ public toListMissionProfiles ( ) { return this . to ( 'ListMissionProfiles' ) ; } /**
     * Grants permission to list satellites
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListSatellites.html
     */ public toListSatellites ( ) { return this . to ( 'ListSatellites' ) ; } /**
     * Grants permission to list tags for a resource
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Grants permission to reserve a contact
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html
     */ public toReserveContact ( ) { return this . to ( 'ReserveContact' ) ; } /**
     * Grants permission to assign a resource tag
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     * - .ifAwsRequestTag()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_TagResource.html
     */ public toTagResource ( ) { return this . to ( 'TagResource' ) ; } /**
     * Grants permission to deassign a resource tag
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_UntagResource.html
     */ public toUntagResource ( ) { return this . to ( 'UntagResource' ) ; } /**
     * Grants permission to update a configuration
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_UpdateConfig.html
     */ public toUpdateConfig ( ) { return this . to ( 'UpdateConfig' ) ; } /**
     * Grants permission to update a mission profile
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/ground-station/latest/APIReference/API_UpdateMissionProfile.html
     */ public toUpdateMissionProfile ( ) { return this . to ( 'UpdateMissionProfile' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'CancelContact' , 'CreateConfig' , 'CreateDataflowEndpointGroup' , 'CreateMissionProfile' , 'DeleteConfig' , 'DeleteDataflowEndpointGroup' , 'DeleteMissionProfile' , 'ReserveContact' , 'UpdateConfig' , 'UpdateMissionProfile' ] , Read : [ 'DescribeContact' , 'GetConfig' , 'GetDataflowEndpointGroup' , 'GetMinuteUsage' , 'GetMissionProfile' , 'GetSatellite' , 'ListTagsForResource' ] , List : [ 'ListConfigs' , 'ListContacts' , 'ListDataflowEndpointGroups' , 'ListGroundStations' , 'ListMissionProfiles' , 'ListSatellites' ] , Tagging : [ 'TagResource' , 'UntagResource' ] } ; param configType param configId param account param region param partition public onConfig ( configType , configId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:config/${ configType }/${ configId }` ) ; } param contactId param account param region param partition public onContact ( contactId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:contact/${ contactId }` ) ; } param dataflowEndpointGroupId param account param region param partition public onDataflowEndpointGroup ( dataflowEndpointGroupId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:dataflow-endpoint-group/${ dataflowEndpointGroupId }` ) ; } param groundStationId param account param region param partition public onGroundStationResource ( groundStationId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:groundstation:${ groundStationId }` ) ; } param missionProfileId param account param region param partition public onMissionProfile ( missionProfileId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:mission-profile/${ missionProfileId }` ) ; } param satelliteId param account param region param partition public onSatellite ( satelliteId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:groundstation:${ region || '*' }:${ account || '*' }:satellite/${ satelliteId }` ) ; } param value param operator public ifConfigId ( value , operator ? ) { return this . if ( `configId` , value , operator || 'StringLike' ) ; } param value param operator public ifConfigType ( value , operator ? ) { return this . if ( `configType` , value , operator || 'StringLike' ) ; } param value param operator public ifContactId ( value , operator ? ) { return this . if ( `contactId` , value , operator || 'StringLike' ) ; } param value param operator public ifDataflowEndpointGroupId ( value , operator ? ) { return this . if ( `dataflowEndpointGroupId` , value , operator || 'StringLike' ) ; } param value param operator public ifGroundStationId ( value , operator ? ) { return this . if ( `groundStationId` , value , operator || 'StringLike' ) ; } param value param operator public ifMissionProfileId ( value , operator ? ) { return this . if ( `missionProfileId` , value , operator || 'StringLike' ) ; } param value param operator public ifSatelliteId ( value , operator ? ) { return this . if ( `satelliteId` , value , operator || 'StringLike' ) ; } }