Long-Running Operations
This doc details what emitters will generate for long-running operations.
Resource create or replace
Section titled “Resource create or replace”Long-running operation to create or replace a resource.
alias ResourceOperations = global.Azure.Core.ResourceOperations<NoConditionalRequests & NoRepeatableRequests & NoClientRequestId>;
/** Details about a user. */@resource("users")model User { /** The name of user. */ @key @visibility(Lifecycle.Read) name: string;
/** The role of user */ role: string;}
// Operation for polling the status of the LRO. SDK may exclude this operation from client.@sharedRouteop getOperationStatus is ResourceOperations.GetResourceOperationStatus<User, never>;
/** Create or replace the User. */@pollingOperation(getOperationStatus)op createOrReplace is ResourceOperations.LongRunningResourceCreateOrReplace<User>;
def begin_create_or_replace( self, name: str, resource: Union[User, JSON, IO[bytes]], **kwargs: Any) -> LROPoller[User]
// Modular api layerexport function createOrReplace( context: Client, name: string, resource: User, options: CreateOrReplaceOptionalParams = { requestOptions: {} }): PollerLike<OperationState<User>, User>;
export async function getOperationStatus( context: Client, name: string, operationId: string, options: GetOperationStatusOptionalParams = { requestOptions: {} }): Promise<User>;
// Modular classical client layerexport class TestServiceClient { createOrReplace( name: string, resource: User, options: CreateOrReplaceOptionalParams = { requestOptions: {} } ): PollerLike<OperationState<User>, User>;
getOperationStatus( name: string, operationId: string, options: GetOperationStatusOptionalParams = { requestOptions: {} } ): Promise<User>;}
public SyncPoller<PollOperationDetails, User> beginCreateOrReplace(String name, User resource);
func (c *Client) BeginCreateOrReplaceUser(ctx context.Context, name string, body User) (*runtime.Poller[User], error)
Resource delete
Section titled “Resource delete”Long-running operation to delete a resource.
alias ResourceOperations = global.Azure.Core.ResourceOperations<NoConditionalRequests & NoRepeatableRequests & NoClientRequestId>;
/** Details about a user. */@resource("users")model User { /** The name of user. */ @key @visibility(Lifecycle.Read) name: string;
/** The role of user */ role: string;}
// Operation for polling the status of the LRO. SDK may exclude this operation from client.@sharedRouteop getOperationStatus is ResourceOperations.GetResourceOperationStatus<User, never>;
/** Delete the User. */@pollingOperation(getOperationStatus)op delete is ResourceOperations.LongRunningResourceDelete<User>;
def begin_delete(self, name: str, **kwargs: Any) -> LROPoller[None]
// Modular api layerexport function $delete( context: Client, name: string, options: DeleteOptionalParams = { requestOptions: {} },): PollerLike<OperationState<void>, void>;
export async function getOperationStatus( context: Client, name: string, operationId: string, options: GetOperationStatusOptionalParams = { requestOptions: {} },): Promise<void>;
// Modular classical client layerexport class TestServiceClient { delete( name: string, options: DeleteOptionalParams = { requestOptions: {} }, ): PollerLike<OperationState<void>, void>;
getOperationStatus( name: string, operationId: string, options: GetOperationStatusOptionalParams = { requestOptions: {} }, ): Promise<void>;}
public SyncPoller<PollOperationDetails, Void> beginDelete(String name);
func (c *Client) BeginDeleteUser(ctx context.Context, name string, options *DeleteUserOptions) (*runtime.Poller[User], error)
Resource action
Section titled “Resource action”Long-running operation to invoke an action on a resource.
alias ResourceOperations = global.Azure.Core.ResourceOperations<NoConditionalRequests & NoRepeatableRequests & NoClientRequestId>;
/** Details about a user. */@resource("users")model User { /** The name of user. */ @key @visibility(Lifecycle.Read) name: string;
/** The role of user */ role: string;}
/** The parameters for exporting a user. */model UserExportParams { /** The format of the data. */ @query format: string;}
/** The exported user data. */model ExportedUser { /** The name of user. */ name: string;
/** The exported URI. */ resourceUri: string;}
// Operation for polling the status of the LRO. SDK may exclude this operation from client.@sharedRouteop getExportOperationStatus is ResourceOperations.GetResourceOperationStatus<User, ExportedUser>;
/** Action to export the data of the User. */@pollingOperation(getExportOperationStatus)op export is ResourceOperations.LongRunningResourceAction<User, UserExportParams, ExportedUser>;
def begin_export(self, name: str, *, format: str, **kwargs: Any) -> LROPoller[ExportedUser]
// Modular api layerexport function $export( context: Client, name: string, format: string, options: ExportOptionalParams = { requestOptions: {} },): PollerLike<OperationState<ExportedUser>, ExportedUser>;
export async function getExportOperationStatus( context: Client, name: string, operationId: string, options: GetExportOperationStatusOptionalParams = { requestOptions: {} },): Promise<ExportedUser>;
// Modular classical client layerexport class TestServiceClient { export( name: string, format: string, options: ExportOptionalParams = { requestOptions: {} }, ): PollerLike<OperationState<ExportedUser>, ExportedUser>;
getExportOperationStatus( name: string, operationId: string, options: GetExportOperationStatusOptionalParams = { requestOptions: {} }, ): Promise<ExportedUser>;}
public SyncPoller<PollOperationDetails, ExportedUser> beginExport(String name, String format);
func (c *Client) BeginExportUser(ctx context.Context, name string, format string, options *ExportUserOptions) (*runtime.Poller[ExportedUser], error)