code: public CMAAsset publish(CMAAsset asset) {
      assertNotNull(asset, "asset");
      final String assetId = getResourceIdOrThrow(asset, "asset");
      final String spaceId = getSpaceIdOrThrow(asset, "asset");
      final String environmentId = asset.getEnvironmentId();
  
      return service.publish(
          asset.getSystem().getVersion(),
          spaceId,
          environmentId,
          assetId
      ).blockingFirst();
    }
docs: Publish an Asset.
  
  @param asset Asset
  @return {@link CMAAsset} result instance
  @throws IllegalArgumentException if asset is null.
  @throws IllegalArgumentException if asset has no id.
  @throws IllegalArgumentException if asset has no space id.