001package ca.uhn.fhir.rest.server.interceptor.auth; 002 003/*- 004 * #%L 005 * HAPI FHIR - Server Framework 006 * %% 007 * Copyright (C) 2014 - 2022 Smile CDR, Inc. 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023import org.hl7.fhir.instance.model.api.IIdType; 024 025import javax.annotation.Nonnull; 026 027/** 028 * @since 5.5.0 029 */ 030public interface IAuthRuleBuilderRuleBulkExport { 031 032 /** 033 * Allow/deny <b>group-level</b> export rule applies to the Group with the given resource ID, e.g. <code>Group/123</code> 034 * 035 * @since 5.5.0 036 */ 037 default IAuthRuleBuilderRuleBulkExportWithTarget groupExportOnGroup(@Nonnull IIdType theFocusResourceId) { 038 return groupExportOnGroup(theFocusResourceId.getValue()); 039 } 040 041 /** 042 * Allow/deny <b>group-level</b> export rule applies to the Group with the given resource ID, e.g. <code>Group/123</code> 043 * 044 * @since 5.5.0 045 */ 046 IAuthRuleBuilderRuleBulkExportWithTarget groupExportOnGroup(@Nonnull String theFocusResourceId); 047 048 /** 049 * Allow/deny <b>patient-level</b> export rule applies to the Group with the given resource ID, e.g. <code>Group/123</code> 050 * 051 * @since 5.5.0 052 */ 053 default IAuthRuleBuilderRuleBulkExportWithTarget patientExportOnGroup(@Nonnull IIdType theFocusResourceId) { 054 return patientExportOnGroup(theFocusResourceId.getValue()); 055 } 056 057 /** 058 * Allow/deny <b>patient-level</b> export rule applies to the Group with the given resource ID, e.g. <code>Group/123</code> 059 * 060 * @since 5.5.0 061 */ 062 IAuthRuleBuilderRuleBulkExportWithTarget patientExportOnGroup(@Nonnull String theFocusResourceId); 063 064 /** 065 * Allow/deny <b>system-level</b> export rule applies to the Group with the given resource ID, e.g. <code>Group/123</code> 066 * 067 * @since 5.5.0 068 */ 069 IAuthRuleBuilderRuleBulkExportWithTarget systemExport(); 070 071 /** 072 * Allow/deny <b>any bulk export</b> operation 073 */ 074 IAuthRuleBuilderRuleBulkExportWithTarget any(); 075}