# command: project.delete-shared
Description: Deletes a shared project and its associated project config. Web only.

Inputs: `DeleteSharedProjectArgs`

DeleteSharedProjectArgs properties:
```json
{
  "created": {
    "description": "The created Date."
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "showConfirm": {
    "description": "Whether to show a confirm prompt, when overwriting a shared project. Defaults to 'true'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

---
# command: project.ensure-can-save-shared
Description: Guard command for enabling the project.save-shared command. Web only.

Inputs: `SaveSharedProjectArgs`

SaveSharedProjectArgs properties:
```json
{
  "appConfig": {
    "description": "The AppConfig for the command or operation."
  },
  "created": {
    "description": "The created Date."
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "showConfirm": {
    "description": "Whether to show a confirm prompt, when overwriting a shared project. Defaults to 'true'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

---
# command: project.load
Description: Loads a project's app config and updates the application's current state, accordingly. If more than one file is provided, only the first will be loaded. Web only.

**Example:** Add some default markup to the map and set the viewpoint by applying `AppConfig` JSON.

```
{
    "schemaVersion": "1.0",
    "items": [
        {
            "id": "default",
            "markupGraphics": [
                {
                    "geometry": {
                        "spatialReference": {
                            "latestWkid": 3857,
                            "wkid": 102100
                        },
                        "x": -13733817.770910433,
                        "y": 6177913.346701053
                    },
                    "symbol": {
                        "type": "esriSMS",
                        "color": [251, 43, 17, 85],
                        "size": 12,
                        "style": "esriSMSCircle",
                        "outline": {
                            "type": "esriSLS",
                            "color": [251, 43, 17, 255],
                            "width": 1.5,
                            "style": "esriSLSSolid"
                        }
                    },
                    "attributes": {
                        "markupLevel": 36,
                        "isContrastGraphic": true,
                        "collection": "default",
                        "graphic-visible": true
                    }
                }
            ],
            "viewpoint": {
                "rotation": 45,
                "scale": 10000,
                "targetGeometry": {
                    "spatialReference": {
                        "wkid": 102100
                    },
                    "x": -13733546.804885864,
                    "y": 6177341.583529942
                }
            },
            "$type": "map-extension"
        }
    ]
}
```

Inputs: `( AppConfig | Blob | SharedProject | HasAppConfig | Blob[] )`

AppConfig properties:
```json
{
  "failureModes": {
    "description": "User-defined failure modes for particular items. Items are referenced by item uri."
  },
  "import": {
    "description": "Specifies zero or more App configurations that are imported into this one.\n\nImports are processed in the order specified, followed by items and settings that are locally defined in this AppConfig. If the same item is defined multiple times, then the items' properties will get merged in such a way that the later definitions will override earlier ones. Similarly if a setting is defined several times, then the most recent definition wins.",
    "items": {
      "type": "string"
    },
    "type": "array"
  },
  "items": {
    "description": "The set of items defined in the App (order is irrelevant).",
    "items": {
      "$ref": "#/definitions/ItemConfig",
      "ItemConfig": {
        "$type": {
          "description": "The item's type. See {@link ItemType}.",
          "type": "string"
        },
        "id": {
          "description": "The item's ID. No two items of the same type within an App can have the same ID (however, items of different types can have the same ID).",
          "type": "string"
        }
      }
    },
    "type": "array"
  },
  "schemaVersion": {
    "description": "The version of the App configuration schema that is being used. Current version is available via the {@link CURRENT_SCHEMA_VERSION} constant.",
    "type": "string",
    "isRequired": "true"
  },
  "settings": {
    "description": "User-defined settings. These can be referenced via URIs in the form setting://setting-name."
  },
  "title": {
    "description": "A human-readable name for the App.",
    "type": "string"
  }
}
```

SharedProject properties:
```json
{
  "created": {
    "description": "The created Date.",
    "isRequired": "true"
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string",
    "isRequired": "true"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string",
    "isRequired": "true"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string",
    "isRequired": "true"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

HasAppConfig properties:
```json
{
  "appConfig": {
    "description": "The AppConfig for the command or operation."
  }
}
```

---
# command: project.save-shared
Description: Create or updates a shared project with the specified shared project details and project config. Web only.

Inputs: `SaveSharedProjectArgs`

SaveSharedProjectArgs properties:
```json
{
  "appConfig": {
    "description": "The AppConfig for the command or operation."
  },
  "created": {
    "description": "The created Date."
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "showConfirm": {
    "description": "Whether to show a confirm prompt, when overwriting a shared project. Defaults to 'true'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

---
# command: project.show-settings
Description: Shows a shared projects settings. Requires a shared-projects component to be in the layout. Web only.

Inputs: `ShowSharedProjectArgs`

ShowSharedProjectArgs properties:
```json
{
  "appConfig": {
    "description": "The AppConfig for the command or operation."
  },
  "createNewProject": {
    "description": "Whether to create a new project. If a project is provided it will be used as the starting point for configuration.",
    "type": "boolean"
  },
  "created": {
    "description": "The created Date."
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

---
# command: project.show-share-link
Description: Shows a shared projects share link. Requires a shared-projects component to be in the layout. Web only.

Inputs: `SharedProject`

SharedProject properties:
```json
{
  "created": {
    "description": "The created Date.",
    "isRequired": "true"
  },
  "description": {
    "description": "A description for the shared project.",
    "type": "string",
    "isRequired": "true"
  },
  "hiddenFrom": {
    "description": "Filters that determine whether the UI element is hidden from a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  },
  "id": {
    "description": "The unique ID for this entity.",
    "type": "string",
    "isRequired": "true"
  },
  "modified": {
    "description": "The modified Date."
  },
  "modifiedBy": {
    "description": "The username of the last modifier."
  },
  "owner": {
    "description": "The username of the owner."
  },
  "readOnly": {
    "description": "Indicates if the shared project is shared as 'read only'.",
    "type": "boolean"
  },
  "title": {
    "description": "A human-readable title for the shared project.",
    "type": "string",
    "isRequired": "true"
  },
  "visibleTo": {
    "description": "Filters that determine whether the UI element is visible to a given end-user. If both visibleTo and hiddenFrom are undefined/empty, the component will be visible to all users."
  }
}
```

---
