Interface MorpheusSecurityGroupLocationService

All Superinterfaces:
MorpheusDataQueryService<SecurityGroupLocation>, MorpheusDataService<SecurityGroupLocation,SecurityGroupLocationIdentityProjection>, MorpheusIdentityService<SecurityGroupLocationIdentityProjection>

Context methods for syncing SecurityGroupLocations in Morpheus
  • Method Details

    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<SecurityGroupLocationIdentityProjection> listIdentityProjections(Long cloudId, Long cloudPoolId, String category)
      Get a list of SecurityGroupLocation projections based on the Cloud associated with the SecurityGroupLocation
      Parameters:
      cloudId - the id of the Cloud
      cloudPoolId - (optional) id of the CloudPool that the associated SecurityGroupLocation must be associated with via matching the 'category' with the ComputeZonePool's externalId
      category - (optional) category name that the SecurityGroupLocation must have
      Returns:
      Observable stream of sync projection
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<SecurityGroupLocationIdentityProjection> listIdentityProjections(String refType, Long refId)
      Get a list of SecurityGroupLocation projections based on the refId and refType associated with the SecurityGroupLocation
      Parameters:
      refType - the refType to match on. Typically 'ComputeZone' for Cloud related tags
      refId - the refId to match on. Typically the id of the Cloud for Cloud related tags
      Returns:
      Observable stream of sync projection
    • listSyncProjections

      @Deprecated io.reactivex.rxjava3.core.Observable<SecurityGroupLocationIdentityProjection> listSyncProjections(Long cloudId, Long cloudPoolId, String category)
      Get a list of SecurityGroupLocation projections based on the Cloud associated with the SecurityGroupLocation
      Parameters:
      cloudId - the id of the Cloud
      cloudPoolId - (optional) id of the CloudPool that the associated SecurityGroupLocation must be associated with via matching the 'category' with the ComputeZonePool's externalId
      category - (optional) category name that the SecurityGroupLocation must have
      Returns:
      Observable stream of sync projection
    • listSyncProjections

      @Deprecated io.reactivex.rxjava3.core.Observable<SecurityGroupLocationIdentityProjection> listSyncProjections(String refType, Long refId)
      Deprecated.
      Get a list of SecurityGroupLocation projections based on the refId and refType associated with the SecurityGroupLocation
      Parameters:
      refType - the refType to match on. Typically 'ComputeZone' for Cloud related tags
      refId - the refId to match on. Typically the id of the Cloud for Cloud related tags
      Returns:
      Observable stream of sync projection
    • listByIds

      io.reactivex.rxjava3.core.Observable<SecurityGroupLocation> listByIds(List<Long> ids)
      Fetch the SecurityGroups given a list of ids
      Parameters:
      ids - list of ids
      Returns:
      Observable list of SecurityGroups
    • save

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> save(List<SecurityGroupLocation> securityGroupLocations)
      Save updates to existing SecurityGroupLocations
      Specified by:
      save in interface MorpheusDataService<SecurityGroupLocation,SecurityGroupLocationIdentityProjection>
      Parameters:
      securityGroupLocations - SecurityGroupLocations to update
      Returns:
      whether the save was successful
      See Also:
    • create

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> create(List<SecurityGroupLocation> securityGroupLocations)
      Create new SecurityGroupLocations in Morpheus. If securityGroup is not specified, then the hash is used to locate an existing SecurityGroup in Morpheus and it will then be associated with this SecurityGroupLocation. If the parent SecurityGroup is still not found, a new one will be created
      Specified by:
      create in interface MorpheusDataService<SecurityGroupLocation,SecurityGroupLocationIdentityProjection>
      Parameters:
      securityGroupLocations - new SecurityGroupLocations to persist
      Returns:
      success
      See Also:
    • syncRules

      io.reactivex.rxjava3.core.Single<Boolean> syncRules(SecurityGroupLocation securityGroupLocation, List<SecurityGroupRuleLocation> rules)
      Adds, removes, and updates SecurityGroupRules and SecurityGroupRuleLocations for the SecurityGroup associated with the SecurityGroupLocation
      Parameters:
      securityGroupLocation - the SecurityGroupLocation for which to sync the rules
      rules - the list of SecurityGroupRuleLocations which represent the desired state
      Returns:
      whether the sync was successful
    • syncAssociations

      io.reactivex.rxjava3.core.Single<Boolean> syncAssociations(ComputeServerIdentityProjection server, List<SecurityGroupLocationIdentityProjection> securityGroupLocations)
      Adds, removes, and updates associations between SecurityGroups and SecurityGroupLocations
      Parameters:
      securityGroupLocations - the list of SecurityGroupLocations for which to sync the SecurityGroup associations
      server - the ComputeServer for which to sync the securityGroupLocations
      Returns:
      whether the sync was successful
    • removeSecurityGroupLocations

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> removeSecurityGroupLocations(List<SecurityGroupLocationIdentityProjection> securityGroupLocations)
      Remove SecurityGroupLocations from Morpheus
      Parameters:
      securityGroupLocations - SecurityGroupLocations to remove
      Returns:
      whether the removal was successful