code: public Observable<ManagementLockObjectInner> createOrUpdateAtResourceLevelAsync(String resourceGroupName, String resourceProviderNamespace, String parentResourcePath, String resourceType, String resourceName, String lockName, ManagementLockObjectInner parameters) {
          return createOrUpdateAtResourceLevelWithServiceResponseAsync(resourceGroupName, resourceProviderNamespace, parentResourcePath, resourceType, resourceName, lockName, parameters).map(new Func1<ServiceResponse<ManagementLockObjectInner>, ManagementLockObjectInner>() {
              @Override
              public ManagementLockObjectInner call(ServiceResponse<ManagementLockObjectInner> response) {
                  return response.body();
              }
          });
      }
docs: Creates or updates a management lock at the resource level or any level below the resource.
  When you apply a lock at a parent scope, all child resources inherit the same lock. To create management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. Of the built-in roles, only Owner and User Access Administrator are granted those actions.
  
  @param resourceGroupName The name of the resource group containing the resource to lock.
  @param resourceProviderNamespace The resource provider namespace of the resource to lock.
  @param parentResourcePath The parent resource identity.
  @param resourceType The resource type of the resource to lock.
  @param resourceName The name of the resource to lock.
  @param lockName The name of lock. The lock name can be a maximum of 260 characters. It cannot contain &lt;, &gt; %, &amp;, :, \, ?, /, or any control characters.
  @param parameters Parameters for creating or updating a  management lock.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the ManagementLockObjectInner object