Procore.Api.ProjectManagementDrawingsDrawings (procore_sdk v0.3.0)

API calls for all endpoints tagged ProjectManagementDrawingsDrawings.

Summary

Functions

List drawings Returns a list of all Drawings for a specified drawing area.

List drawing revision terms Returns extracted text terms and locations for a collection of Drawing Revisions. Drawing Revisions which do not have any recorded term data will be omitted from the response. An empty term collection for a drawing indicates that the drawing has been processed, but that no terms were found.

List drawing tiles Lists the Drawing Tiles in the specified Drawing Revision along with the maximum Zoom Level and Tile Size.

List drawing revisions Returns a list of all Drawing Revisions in the specified Project.

Show Drawing Revision Returns a specific Drawing Revision from the specified Project

List drawing sets Lists the Drawing Sets in the specified Project.

List drawing uploads Returns a list of all Drawing Uploads in the specified Project.

Create drawing upload Create a new Drawing Upload in the specified project. It creates one DrawingUpload, which includes a DrawingLogImport and a ProstoreFile for each file uploaded. Sidekiq then sends them to the image processing server. First, it will try to process files parameter, if is empty, it will use upload_uuids.

List drawings Returns a list of all Drawings for a specified drawing area.

Create Drawing Create specified Drawing. For additional information on using the Create Drawing Upload endpoint, see the Direct Drawing Uploads tutorial.

List drawing revision terms Returns extracted text terms and locations for a collection of Drawing Revisions.

List drawing uploads Returns a list of all Drawing Uploads in the specified Project.

Create drawing upload Create a new Drawing Upload in the specified project. It creates one DrawingUpload, which includes a DrawingLogImport and a ProstoreFile for each file uploaded. The Drawing Upload will be processed asynchronously after the response. For additional information on using the Create Drawing endpoint, see Direct Drawing Uploads tutorial.

Functions

Link to this function

rest_v10_drawing_areas_drawing_area_id_drawings_get(connection, procore_company_id, drawing_area_id, opts \\ [])

List drawings Returns a list of all Drawings for a specified drawing area.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • drawing_area_id (integer()): ID of the drawing area
  • opts (keyword): Optional parameters
    • :project_id (integer()): Unique identifier for the project.
    • :page (integer()): Page
    • :per_page (integer()): Elements per page

Returns

  • {:ok, [%RestV11DrawingAreasDrawingAreaIdDrawingsGet200ResponseInner{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_drawing_areas_drawing_area_id_drawings_id_patch(connection, procore_company_id, drawing_area_id, id, body91, opts \\ [])

Update Drawing Update specified Drawing

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • drawing_area_id (integer()): ID of the drawing area
  • id (integer()): Drawing ID
  • body91 (Body91):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.RestV11DrawingAreasDrawingAreaIdDrawingsPost201Response.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_revision_terms_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_revision_terms_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingRevisionTermSet.t()]}
  | {:error, Tesla.Env.t()}

List drawing revision terms Returns extracted text terms and locations for a collection of Drawing Revisions. Drawing Revisions which do not have any recorded term data will be omitted from the response. An empty term collection for a drawing indicates that the drawing has been processed, but that no terms were found.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :drawing_revision_ids ([integer()]): Drawing Revisions to fetch extracted terms for. Limited to 50 revisions per call; clients should paginate larger collections.

Returns

  • {:ok, [%DrawingRevisionTermSet{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_revisions_drawing_revision_id_drawing_tiles_get(connection, procore_company_id, project_id, drawing_revision_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_revisions_drawing_revision_id_drawing_tiles_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok,
     Procore.Model.RestV10ProjectsProjectIdDrawingRevisionsDrawingRevisionIdDrawingTilesGet200Response.t()}
  | {:error, Tesla.Env.t()}

List drawing tiles Lists the Drawing Tiles in the specified Drawing Revision along with the maximum Zoom Level and Tile Size.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • drawing_revision_id (integer()): ID of the drawing revision
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.RestV10ProjectsProjectIdDrawingRevisionsDrawingRevisionIdDrawingTilesGet200Response.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_revisions_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_revisions_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingRevision.t()]}
  | {:error, Tesla.Env.t()}

List drawing revisions Returns a list of all Drawing Revisions in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :page (integer()): Page
    • :per_page (integer()): Elements per page
    • :drawing_area_id (integer()): Filter by Drawing Area
    • :drawing_id (integer()): Filter by Drawing
    • :drawing_discipline_id (integer()): Filter by Drawing Discipline
    • :drawing_set_id (integer()): Filter by Drawing Set. To retreive revisions from current set add drawing_set_id=current_set to query
    • :id ([integer()]): Filter by Drawing Revision ID To request specific drawing revision ids add id[]=42&id[]=43 to query
    • :"filters[ids]" ([integer()]): Filter by Drawing Revisions ID To request specific drawing revision ids add filters[ids]=[1,2,3] to filters
    • :is_reviewed (boolean()): Filter by reviewed status
    • :query (String.t): Filter by custom query
    • :with_obsolete (boolean()): Include obsolete drawing revisions. Obsolete drawing revisions are filtered by default.
    • :view (String.t): Defines the type of view returned. Must be one of 'only_pdf_urls', 'only_ids', 'web_index', 'extended_coordinates', 'extended_files', 'extended_dpi' or 'android'.

Returns

  • {:ok, [%DrawingRevision{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_revisions_id_get(connection, procore_company_id, project_id, id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_revisions_id_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, Procore.Model.DrawingRevision.t()}
  | {:error, Tesla.Env.t()}

Show Drawing Revision Returns a specific Drawing Revision from the specified Project

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • id (integer()): ID of the Drawing Revision
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.DrawingRevision.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_revisions_id_patch(connection, procore_company_id, project_id, id, body92, opts \\ [])

Update Drawing Revision Update specified Drawing Revision

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • id (integer()): ID of the Drawing Revision
  • body92 (Body92):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.DrawingRevision1.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_sets_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_sets_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingSet.t()]}
  | {:error, Tesla.Env.t()}

List drawing sets Lists the Drawing Sets in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :page (integer()): Page
    • :per_page (integer()): Elements per page
    • :"filters[exclude_empty_sets]" (boolean()): If true, returns drawing sets that contain at least one drawing.
    • :"filters[only_attachable_sets]" (boolean()): If true, returns drawing sets that contain at least one published drawing.

Returns

  • {:ok, [%DrawingSet{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_sets_id_delete(connection, procore_company_id, project_id, id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_sets_id_delete(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok, nil}
  | {:ok,
     Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:error, Tesla.Env.t()}

Delete drawing set Delete a specified Drawing Set.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • id (integer()): ID of the drawing set
  • opts (keyword): Optional parameters

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_sets_id_patch(connection, procore_company_id, project_id, id, rest_v10_projects_project_id_drawing_sets_id_patch_request, opts \\ [])

Update drawing set Update an existing Drawing Set in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • id (integer()): ID of the drawing set
  • rest_v10_projects_project_id_drawing_sets_id_patch_request (RestV10ProjectsProjectIdDrawingSetsIdPatchRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.DrawingSet.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_sets_post(connection, procore_company_id, project_id, rest_v10_projects_project_id_drawing_sets_post_request, opts \\ [])

Create drawing set Create a new Drawing Set in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • rest_v10_projects_project_id_drawing_sets_post_request (RestV10ProjectsProjectIdDrawingSetsPostRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.DrawingSet.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_uploads_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_uploads_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingUpload1.t()]}
  | {:error, Tesla.Env.t()}

List drawing uploads Returns a list of all Drawing Uploads in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :page (integer()): Page
    • :per_page (integer()): Elements per page

Returns

  • {:ok, [%DrawingUpload1{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_uploads_id_delete(connection, procore_company_id, project_id, id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_uploads_id_delete(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok, nil}
  | {:ok,
     Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:error, Tesla.Env.t()}

Delete drawing upload Delete an unreviewed Drawing Upload.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • id (integer()): ID of the drawing upload
  • opts (keyword): Optional parameters

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v10_projects_project_id_drawing_uploads_post(connection, procore_company_id, project_id, drawing_set_id, opts \\ [])

@spec rest_v10_projects_project_id_drawing_uploads_post(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, Procore.Model.DrawingUpload1.t()}
  | {:error, Tesla.Env.t()}

Create drawing upload Create a new Drawing Upload in the specified project. It creates one DrawingUpload, which includes a DrawingLogImport and a ProstoreFile for each file uploaded. Sidekiq then sends them to the image processing server. First, it will try to process files parameter, if is empty, it will use upload_uuids.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • drawing_set_id (integer()): Drawing Set ID
  • opts (keyword): Optional parameters
    • :"Idempotency-Token" (String.t): Unique idempotent token
    • :files ([String.t]): One or more files in PDF format to include in the upload. To upload drawings you must upload the entire payload as multipart/form-data content-type and specify each parameter as form-data together with files[] as files. Required only if upload_uuids is empty
    • :upload_uuids ([String.t]): Array of uploaded files UUIDs. *Required only if files is empty
    • :drawing_area_id (integer()): Drawing Area ID *Required only if Drawing Area is turned on
    • :drawing_number_contains_revision (boolean()): Drawing number contains revision status
    • :drawing_date (Date.t): Drawing date
    • :received_date (Date.t): Received date
    • :get_info_from_filename (boolean()): Get info from filename

Returns

  • {:ok, Procore.Model.DrawingUpload1.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_drawing_areas_drawing_area_id_drawings_get(connection, procore_company_id, drawing_area_id, opts \\ [])

List drawings Returns a list of all Drawings for a specified drawing area.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • drawing_area_id (integer()): ID of the drawing area
  • opts (keyword): Optional parameters
    • :project_id (integer()): Unique identifier for the project.
    • :page (integer()): Page
    • :per_page (integer()): Elements per page

Returns

  • {:ok, [%RestV11DrawingAreasDrawingAreaIdDrawingsGet200ResponseInner{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_drawing_areas_drawing_area_id_drawings_id_patch(connection, procore_company_id, drawing_area_id, id, body91, opts \\ [])

Update Drawing Update specified Drawing

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • drawing_area_id (integer()): ID of the drawing area
  • id (integer()): Drawing ID
  • body91 (Body91):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.RestV11DrawingAreasDrawingAreaIdDrawingsPost201Response.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_drawing_areas_drawing_area_id_drawings_post(connection, procore_company_id, drawing_area_id, body90, opts \\ [])

Create Drawing Create specified Drawing. For additional information on using the Create Drawing Upload endpoint, see the Direct Drawing Uploads tutorial.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • drawing_area_id (integer()): ID of the drawing area
  • body90 (Body90):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Procore.Model.RestV11DrawingAreasDrawingAreaIdDrawingsPost201Response.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_projects_project_id_drawing_revision_terms_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v11_projects_project_id_drawing_revision_terms_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingRevisionTermSet.t()]}
  | {:error, Tesla.Env.t()}

List drawing revision terms Returns extracted text terms and locations for a collection of Drawing Revisions.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :drawing_revision_ids ([integer()]): Drawing Revisions to fetch extracted terms for. Limited to 50 revisions per call; clients should paginate larger collections.

Returns

  • {:ok, [%DrawingRevisionTermSet{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_projects_project_id_drawing_uploads_get(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v11_projects_project_id_drawing_uploads_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, [Procore.Model.DrawingUpload.t()]}
  | {:error, Tesla.Env.t()}

List drawing uploads Returns a list of all Drawing Uploads in the specified Project.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :page (integer()): Page
    • :per_page (integer()): Elements per page
    • :view (String.t): Specifies the level of detail returned in the response. The 'with_drawing_log_imports' view provides additional data as shown below. The 'normal' view is the default if not specified.

Returns

  • {:ok, [%DrawingUpload{}, ...]} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_projects_project_id_drawing_uploads_id_delete(connection, procore_company_id, id, project_id, opts \\ [])

@spec rest_v11_projects_project_id_drawing_uploads_id_delete(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok, nil}
  | {:ok,
     Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:error, Tesla.Env.t()}

Delete drawing upload Delete an unreviewed Drawing Upload.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • id (integer()): Drawing Upload ID
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :view (String.t): Specifies the level of detail returned in the response. The 'with_drawing_log_imports' view provides additional data as shown below. The 'normal' view is the default if not specified.

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_projects_project_id_drawing_uploads_id_get(connection, procore_company_id, id, project_id, opts \\ [])

@spec rest_v11_projects_project_id_drawing_uploads_id_get(
  Tesla.Env.client(),
  integer(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, Procore.Model.DrawingUpload.t()}
  | {:error, Tesla.Env.t()}

Show Drawing Upload Get the details of a single Drawing Upload

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • id (integer()): Drawing Upload ID
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :view (String.t): Specifies the level of detail returned in the response. The 'with_drawing_log_imports' view provides additional data as shown below. The 'normal' view is the default if not specified.

Returns

  • {:ok, Procore.Model.DrawingUpload.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

rest_v11_projects_project_id_drawing_uploads_post(connection, procore_company_id, project_id, opts \\ [])

@spec rest_v11_projects_project_id_drawing_uploads_post(
  Tesla.Env.client(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok,
   Procore.Model.RestV10CompaniesCompanyIdWorkflowPermanentLogsGet401Response.t()}
  | {:ok, Procore.Model.DrawingUpload1.t()}
  | {:error, Tesla.Env.t()}

Create drawing upload Create a new Drawing Upload in the specified project. It creates one DrawingUpload, which includes a DrawingLogImport and a ProstoreFile for each file uploaded. The Drawing Upload will be processed asynchronously after the response. For additional information on using the Create Drawing endpoint, see Direct Drawing Uploads tutorial.

Parameters

  • connection (Procore.Connection): Connection to server
  • procore_company_id (integer()): Unique company identifier associated with the Procore User Account.
  • project_id (integer()): Unique identifier for the project.
  • opts (keyword): Optional parameters
    • :"Idempotency-Token" (String.t): Unique idempotent token
    • :drawing_upload (Procore.Model.DrawingUpload.t):

Returns

  • {:ok, Procore.Model.DrawingUpload1.t} on success
  • {:error, Tesla.Env.t} on failure